java怎样获得一个对象的类型

java怎样获得一个对象的类型,第1张

java中获取一个对象可以使用单例模式,实例如下:

Class A:

public class A {

 

 public void SayHello() {

  Systemoutprintln("Say Hello From Class A");

 }

 public static A getInstanceOfA() {

  return new A();//A类中A的实例变量

 }

 private A(){}

}

Class B:

public class B {

 public static void main(String[] args) {

 A a = AgetInstanceOfA();//返回的是A类中的A的实例变量

  aSayHello();//调用A中的SayHello方法

 }

}

java是不支持在运行中进行强制转化的! 如果事先知道类型,可以通过强制转化实现! 如果不知道! 可以采用这种方式!

String className = objgetClass()getName(); 得到类名

然后:

A a = (A)ClassforName(className)newInstance();

//上面这句话的意思是,forName(className):静态加载className这个类;

// newInstance(),实例化一个对象

// A 代表你知道的这人类或者这个类的父类, 把强制转化成你所要的对象。

这和你

A a = new A();

是一样的效果!

从jvm的角度看,使用new的时候,new的类可以没有加载

在使用newInstance时候,就必须保证:1、这个类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是class的静态方法forName()方法,这个静态方法调用了启动类加载器(就是加载javaAPI的那个加载器)。

class获得的是类的Class对象,可不是这个类的对象,用Class 变量名接收,用这个Class对象通过反射机制可以通过newInstence创建出这个类的对象而且只能调用无参数构造器

以上就是关于java怎样获得一个对象的类型全部的内容,包括:java怎样获得一个对象的类型、java 如何通过对象获取对象类全名、和new的区别(JAVA反射机制,通过类名来获等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9532978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存