浅析java的Class类

来源:互联网 发布:网络系统图的 编辑:程序博客网 时间:2024/06/08 00:54

1.获取Class类型的对象的三种方法

1)Object的getClass()方法。
2)Class类的forName()方法。
3)如果T是java的一个类型,那么T.class就代表
了与该类型匹配的对象,例如String.class代表字符串类型,int.class代表整形类型。

2.Class类的常用方法

1)static Class<?>forName(String className)
返回给定串名相应的Class对象。
若给定一个类或者接口的完整路径,那么此方法将试图定位、装载和 连接该类。失败抛出ClassNotFoundException异常。

2)String getName()
返回Class所表示的类型的完整字符串路径

3)T newInstance()
创建一个类的实例

4)Method[] getMethods()
返回Class对象表示的类或者接口的所有公有成员的方法对象的数组

5)Object invoke(Object obj,object[] args)
invoke方法实现相应类的成员方法的而调用。
其中,obj代表调用该方法的实例对象,args代表存放该方法参数的对象数组

test包里面的Test类

public int add (int x, int y){        return x+y;    }    public int minus (int x, int y){        return x-y;    }

Main.java

public static void main(String[] args)throws Exception{        Class<?>myclass = Class.forName("test.Test");   //返回给定字符串的Class对象。        System.out.println(myclass.getName());      //返回Class对象表示的类的路径字符串        Object x = myclass.newInstance();               Method[] m = myclass.getMethods();      //获取Test类的所有方法        Object[] Args = new Object[] {1,2};        for (int i=0; i<2; i++)            System.out.println(m[i].toString());        System.out.println(m[1].invoke(x, Args));       //调用对象的第2个方法        Method addm = myclass.getMethod("add", int.class, int.class);        System.out.println(addm.invoke(x, Args));       //调用add方法    }

运行结果:

test.Test
public int test.Test.add(int,int)
public int test.Test.minus(int,int)
-1
3

0 0
原创粉丝点击