java反射
来源:互联网 发布:网络热词一个亿七个字 编辑:程序博客网 时间:2024/06/05 19:33
java反射
public class Demo2 {
public static void main(String[] args) throws Exception {
//取得Person类对应的字节码对象Class
Class clazz = Class.forName("cn.itcast.java.reflect.Person");
//取得该类的唯一构造方法
//Constructor c = clazz.getConstructor(null);
//Constructor c = clazz.getConstructor(String.class,int.class);
Constructor c = clazz.getDeclaredConstructor(null);
//创建实例
//Person p = (Person) c.newInstance(null);
//Person p = (Person) c.newInstance("berry",10);
//设置非public成员的访问性,默认false即不可访问性
c.setAccessible(true);
Person p = (Person) c.newInstance(null);
//执行方法
p.show();
}
}
public class Demo3 {
public static void main(String[] args) throws Exception {
Person p = new Person();
Class c = Class.forName("cn.itcast.java.reflect.Person");
Field f = c.getDeclaredField("name");
f.setAccessible(true);
f.set(p,"杰克");//p.setName("杰克")
System.out.println("用户名:" + p.getName());
}
}
public class Demo4 {
public static void main(String[] args) throws Exception {
Class c = Class.forName("cn.itcast.java.reflect.Person");
Constructor con = c.getConstructor(null);
Person p = (Person) con.newInstance(null);
Method m = c.getDeclaredMethod("goodbye",null);
m.setAccessible(true);
String returnValue = (String) m.invoke(p,null);
System.out.println(returnValue);
//Method m = c.getMethod("show",String[].class,double.class);
//m.invoke(p,new String[]{"sing","dance"},5000);//new Person().show()
}
}
public class Demo6 {
public static void main(String[] args) throws Exception {
//加载属性文件,取得类名的方法名
Properties props = new Properties();
InputStream is = new FileInputStream("src/cn/itcast/java/reflect/class.properties");
props.load(is);
String className = props.getProperty("className").trim();
String methodName = props.getProperty("methodName").trim();
//通过反射,执行该类的方法
Class c = Class.forName(className);
Constructor con = c.getConstructor(null);
Method m = c.getDeclaredMethod(methodName,null);
m.setAccessible(true);
m.invoke(con.newInstance(null),null);
}
}
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- ioS-------------APP打包
- 将日期转成毫秒数
- Oracle游标(三)
- Matlab GUI 涉及的问题
- Redis 集群
- java反射
- 线程安全类对比
- 利用CAS操作(Compare & Set)实现无锁队列
- CentOs开放自己需要的端口
- OVER(PARTITION BY OVER (ORDER BY
- 北大ACM2991——Crane~~线段树
- 如何限制对象只能建立在堆上或者栈上
- Lucene入门
- Hadoop本地库警告处理(WARN util.NativeCodeLoader: Unable to load native-hadoop library)