java如何用反射获取类实例?
想了解更多Java相关,百度搜索圈T社区,免费视频教程。纯干货
public class Demo {private String key1 = "1";private String key2 = "2";public String getKey1() {return key1;}public void setKey1(String key1) {this.key1 = key1;}public String getKey2() {return key2;}public void setKey2(String key2) {this.key2 = key2;}public static void main(String[] args) throws Exception {//参数 “Demo” 是类的全名,如果在包结构下,要有完整包路径 比如: com.test.DemoClass<?> clazz = Class.forName("Demo");//“Demo”类必须有默认构造方法,否则会抛出异常Demo demo = (Demo) clazz.newInstance();System.out.println(demo.getKey1());System.out.println(demo.getKey2());}}
调用运行时类本身的.class属性
Class clazz=Person.class;
//创建class对应的运行时类Person对象
System.out.println(clazz);
Class clazz1=String.class;
System.out.println(clazz1);
运行时类的对象获取
Person p=new Person();
Class clazz2=p.getClass();
System.out.println(clazz2);
通过Class的静态方法获取
String className="test.Person";
Class clazz3=Class.forName(className);
System.out.println(clazz3);
通过类的加载器
ClassLoader classLoader=this.getClass().getClassLoader();
Class clazz4=classLoader.loadClass(className);
System.out.println(clazz4);
java如何通过反射获取包中所有的类?
先通过IO,定位到这个包通过File.list得到一个包含这个包下所有class的文件的数组。
循环这个数组,用包名拼接每一个遍历出来的文件的名字,得到每一个完整的类名(即,包名加类名)通过class.forname反射得到每一个类实例
类go什么意思?
\类 go\这个词汇源于 Java 语言中的反射机制。在 Java 中,通过反射机制可以动态地获取类的信息,并对其进行操作。
而\类 go\则是指使用反射机制获取类的信息后,将该类实例化为 Go 语言中的`GoObject`类型。这样就可以在 Go 语言中使用反射机制来操作 Java 类了。
还没有评论,来说两句吧...