关于java this.getClass();
发布网友
发布时间:2022-04-26 06:48
我来回答
共4个回答
热心网友
时间:2022-04-26 08:17
Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息。
可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得。
获得此对象后可以利用此Class对象的一些反射特性进行操作,
例如:
this.getClass().newInstance(); //用缺省构造函数创建一个该类的对象
this.getClass().getInterfaces(); //获得此类实现的接口信息
this.getClass().getMethods();//获得此类实现的所有公有方法
Class.forName(" ... JDBC driver class name...."); // Class类的静态方法forName, 向DiverManager注册这个JDBC driver类
热心网友
时间:2022-04-26 09:35
getClass()是Object类中的一个方法,就是用来获取类本身的(获得类本身之后就可以使用newInstance()方法进行实例)。
class Person{
}
public class PersonClassDemo{
public static void main(String[] args){
Person per = new Person() ;
System.out.println(per.getClass().getName());
}
}
以上代码返回的结果是Person对象所属的“包.类”的路径。
此外获得Class的另外两种方法,
1、“类.class”形式,例如Person.class。
2、通过Class类的静态方法“Class.forName("包.类路径")”。
热心网友
时间:2022-04-26 11:10
一般来说this是和new的类相同的都是指new的类,然而在继承的状态下是不一样的
public class Test
public void m() {
this.getClass();
}
}
public class SubTest extends Test {
}
如果调用new SubTest().m();则上述的this.getClass是返回SubTest,如果而不是Test.getClass()指父类Test的
热心网友
时间:2022-04-26 13:01
public class Test {
//获取当前实例的类型
public Class getType() {
return this.getClass();
}
}