反射一:反射非公有类,非当前包中的类

反射一个非公用、非当前包中的类
//第一步:通过类全名 得到Class
Class cls = Class.forName("java.io.UnixFileSystem");
Constructor[] constructors = cls.getConstructors();
// 第二步:通过构造函数创建对象
Constructor constructor = constructors[0];
constructor.setAccessible(true);
Object obj = constructor.newInstance();
//Method
Method method = cls.getMethod("getSeparator");
method.setAccessible(true);
Object value = method.invoke(obj);
System.out.println(value);
//field
Field field = cls.getDeclaredField("javaHome");
field.setAccessible(true);
Object javaHome = field.get(obj);
System.out.println(javaHome);

 

你可能感兴趣的:(java)