- package com.itcast.io.day2;
- import java.lang.reflect.Method;
- import java.util.HashSet;
- import java.util.Iterator;
- class ReflectDemo {
- private static void printTest(){
- System.out.println("test static reflect");
- }
-
- private void printStr() {
- System.out.println("test reflect");
- }
- public void printInt() {
- System.out.println(10);
- }
- }
- public class Test {
- public static void main(String[] args) throws Exception {
- Class cls = Class.forName("com.itcast.io.day2.ReflectDemo");
- Method method = cls.getDeclaredMethod("printTest");
- method.setAccessible(true);
- method.invoke(cls.newInstance());
- }
- }
复制代码 现在我知道该怎么调用了,但是我有点不明白,java.lang.Class.newInstance()
是创建了一个Class对象所表示类的一个新的实例,相当于调用了一个无参数的构造方法去实例化这个对象,即是说明cls.newInstance()返回的其实是个实例对象,为什么一个类的实例对象可以调用它的静态方法? |