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();
是一样的效果!
泛型的类型是无法在运行时通过反射取得的,泛型类型在编译成字节码的时候已经被虚拟机给去掉了,只是起到提示编译器进行类型检查的作用
用这种方法你试一试:父类:import javalangreflectParameterizedType;
public class Parent<T {
public Parent() {
ParameterizedType type = (ParameterizedType)thisgetClass()getGenericSuperclass();
Systemoutprintln("type==" + type);
Systemoutprintln("entityClass==" + typegetActualTypeArguments()[0]);
Systemoutprintln("getOwnerType==" + typegetOwnerType());
Systemoutprintln("getRawType==" + typegetRawType());}}子类:public class Child<T extends Parent<String {
以上就是关于java怎样获得一个对象的类型全部的内容,包括:java怎样获得一个对象的类型、java 如何通过对象获取对象类全名、java泛型该怎么深继承 amp;怎么获得数组的class对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)