您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
10_反射_Class对象功能_获取Method
发布时间:2022-07-04 22:26:28编辑:雪饮阅读()
本次主要是了解了通过反射获取无参方法、有参方法、方法集(public,包含父级)(包含获取方法集中某个方法的方法名)、类名(有点鸡肋)的一些个示例:
package day1.reflection;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class index {
public static void main(String[] args) throws Exception{
//无参方法获取与执行
Method m1=Person.class.getMethod("getName");
System.out.println(m1.invoke(new Person()));
//有参方法获取与执行
Method m2=Person.class.getMethod("setName",String.class);
Person p2=new Person();
m2.invoke(p2,"kasumi");
System.out.println(Person.class.getMethod("getName").invoke(p2));
System.out.println("---------------");
//获取所有public修饰的方法(包含父级)
Method[] m3=Person.class.getMethods();
for(Method m3t : m3){
//当前方法实例
System.out.println(m3t);
//当前方法名
System.out.println("方法名:"+m3t.getName());
}
//获取类名(包含包名的完整类名。目前看来有点鸡肋)
System.out.println("---------------");
System.out.println(Person.class.getName());
}
}
其运行结果如:
null
kasumi
---------------
public java.lang.String day1.reflection.Person.toString()
方法名:toString
public java.lang.String day1.reflection.Person.getName()
方法名:getName
public void day1.reflection.Person.setName(java.lang.String)
方法名:setName
public void day1.reflection.Person.setAge(int)
方法名:setAge
public int day1.reflection.Person.getAge()
方法名:getAge
public final void java.lang.Object.wait() throws java.lang.InterruptedException
方法名:wait
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
方法名:wait
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
方法名:wait
public boolean java.lang.Object.equals(java.lang.Object)
方法名:equals
public native int java.lang.Object.hashCode()
方法名:hashCode
public final native java.lang.Class java.lang.Object.getClass()
方法名:getClass
public final native void java.lang.Object.notify()
方法名:notify
public final native void java.lang.Object.notifyAll()
方法名:notifyAll
---------------
day1.reflection.Person
关键字词:java,反射,Method