首页 > 代码库 > Java 反射的基本应用
Java 反射的基本应用
package com.lf.testreflection; import java.lang.reflect.Field; import java.lang.reflect.Method; import org.junit.Test; public class ClassTest{ @Test public void testSomthing()throws Exception { //创建运行时类的对象 Class cla = Person.class; // 创建运行时Person的对象 Person person = (Person)cla.newInstance(); // 通过cla获取对象的属性 Field field = cla.getDeclaredField("name"); // 设置可以访问的权限 field.setAccessible(true); // 设置相应的属性值 field.set(person, "kity"); //获取相应的属性(public可以使用下面方法获取) field = cla.getField("address"); field.set(person, "NewYo"); field = cla.getDeclaredField("age"); field.setAccessible(true); field.set(person, 18); System.out.println(person); // 获取无参方法 Method method = cla.getMethod("learn"); method.invoke(person); // 获取有参方法 Method method2 =cla.getMethod("readSomething",String.class); method2.invoke(person, "ainsy"); // 获取多参方法 Method method3 =cla.getMethod("readSomething",int.class,String.class); method3.invoke(person, 20,"ainsy"); // 获取所有的属性 Field[] fields = cla.getDeclaredFields(); for (Field field2 : fields) { // 每个属性的修饰符 System.out.print(field2.getModifiers()+" "); // 每个属性名 System.out.print(field2.getName()+" "); // 获取属性的类型 Class type = field2.getType(); System.out.println(type); } // 调用运行时本身的.class属性 Class cla2 = Person.class; //打印类路径 System.out.println(cla2.getName()); // 通过运行时类的对象获取 Person p = new Person(); Class cla3 = p.getClass(); System.out.println(cla3.getName()); } }
Java 反射的基本应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。