java 获取类方法_Java之反射机制三:获取类的方法

一.实体类BigDog.java

package reflex;

public class BigDog extends Dog {

private Integer age;

public String name;

public BigDog(){}

private void getDog(){}

private BigDog(Integer age, String name) {

this.age = age;

this.name = name;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "BigDog{" +

"age=" + age +

'}';

}

}

二.获取类的方法

1.获取类及其父类的公有方法

Class dogClass = BigDog.class;

Method[] methods=dogClass.getMethods();for(Method method : methods) {

System.out.println(method);

}

运行结果:

b7ba8c0b78f57257200b6f402b19b312.png

2.获取该类的所有方法

Method[] declaredMethods =dogClass.getDeclaredMethods();for(Method declaredMethod : declaredMethods) {

System.out.println(declaredMethod);

}

运行结果:

660d58fa395928a20a715d37f9071e65.png

三.获取类的构造方法

Class dogClass = BigDog.class;//获取该类的公有构造方法

Constructor>[] constructors =dogClass.getConstructors();for (Constructor>constructor : constructors) {

System.out.println(constructor);

}//获取该类所有的构造方法(包括有参无参,私有共有)

Constructor>[] declaredConstructors =dogClass.getDeclaredConstructors();for (Constructor>declaredConstructor : declaredConstructors) {

System.out.println(declaredConstructor);

}

//获取该类公有的有参构造方法

Constructor constructor = dogClass.getConstructor(Integer.class);

System.out.println(constructor);

//获取该类私有的有参构造方法

Constructor declaredConstructor = dogClass.getDeclaredConstructor(Integer.class, String.class);

System.out.println(declaredConstructor);

运行结果:

231b173bc5ba3b4d207533102285368f.png

四.获取该类指定的方法

1.获取类指定的公有方法

//获取ArrayList的add方法

Class clazz = ArrayList.class;

Method method= clazz.getMethod("add", int.class, Object.class);

System.out.println(method);

运行结果:

c86559f1586f420e274036e248ffc221.png

2.获取类指定的私有方法

//获取类的指定私有方法

Class clazz = Object.class;

Method method= clazz.getDeclaredMethod("registerNatives");

System.out.println(method);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值