java反射简单介绍

今天学习了Java的反射,觉得资料中一句话说的特别好,反射类就是对一个类进行解剖,分析它的变量,方法等.

题外话,java还是不能急,一步一个脚印.

shapes这个包要和test在同一个项目下

另外CSND怎么上传图片。。。

public class test {
public static void main(String[] args) throws Exception {
try {
Class clazz = Class.forName("shapes.Circle");
// Class clazz1 = Circle.class;
// Object obj=new Circle();
// Class clazz2=obj.getClass(); 用于获得对象的类型
Field field = clazz.getDeclaredField("x");// 获得单个对象 对象组加s
// 对象数组getDeclaredFields
field.setAccessible(true);// 可改变
Constructor con = clazz.getConstructor(int.class, String.class);// 有参构造,记得参数怎么写.
Object obj = con.newInstance(3, "123");
Object val = field.get(obj);
// clazz.newInstance(); 无参构造
System.out.println(val);
field.set(obj, 5);// 设置属性
Object val1 = field.get(obj);
System.out.println(val1);


Method method = clazz.getMethod("print");// 执行方法 得到方法getMethods();
method.invoke(obj);


Method method1 = clazz.getMethod("a1", null);
method1.invoke(null, null);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
}

你可能感兴趣的:(java基础)