⑴ java面试题:获得一个类的类对象有哪些方式
给你介绍3种获得类对象方式:
第一种方式:通过类本身来获得对象
Classclassname=this.getClass();
第二种方式:通过子类的实例获取父类对象
ClassNamecn=newClassName();
UserClass=cn.getClass();
ClassSubUserClass=UserClass.getSuperclass();
第三种方式:通过类名加.class获取对象
ClassForClass=**.**.ClassName.class;(类在包中的路径加.class)
第四种方式:通过类名的字符串获取对象
ClassForName=Class.forName("**.**.ClassName");
这种方式在jdbc中常用到。
⑵ 利用java反射机制,通过一个对象获得完整的包名和类名
1、Test t = new Test().Class clazz = t.getClass().System.out.println(clazz.getCanonicalName()).System.out.println(clazz.getSimpleName()).
2、public class TestReflect {public static void main(String[] args) throws Exception {TestReflect testReflect = new TestReflect().System.out.println(testReflect.getClass().getName()).// 结果 net.xsoftlab.ke.TestReflect.}}
3、Java程序
⑶ java 获取对象的数据类型的方法
使用getClass方法可以获取一个对象的类型类,然后在调用该类的方法可以获取该类的相关信息,比如父类的名字,该类的名字等等:
packagetest;
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
publicclassDemo2{
Stringusername="sss";
publicstaticvoidmain(String[]args),IllegalAccessException,NoSuchFieldException,SecurityException,NoSuchMethodException{
Demo2t=newDemo2();
if(Demo2.class==t.getClass()){
System.out.println("equal");
}
//获取类名
System.out.println(t.getClass().getName());
//获取父类名
System.out.println(t.getClass().getSuperclass());
//获取类中某个属性
Fieldf=t.getClass().getField("username");
//获取类中某个方法
Methodm=t.getClass().getDeclaredMethod("main",String[].class);
}
}