浅析java的Class类

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值