java 反射机制 之 getMethods获取所有公有方法 和 getDeclaredMethods 获取本类所有方法
2017-11-10 23:50
811 查看
文件结构:
Person:
package demo2;
public class Person {
private int age;
private String name;
public Person( String name,int age) {
this.age = age;
this.name = name;
System.out.println("构造函数Person(有参数)执行");
}
public Person() {
System.out.println("构造函数Person(无参数)执行");
}
//公有 有参方法
public void public_show(String str,int i)
{
System.out.println("public show "+str+"..."+i);
}
//公有 无参方法
public void public_prin()
{
System.out.println("public prin");
}
//私有 有参方法
private void private_show(String str,int i)
{
System.out.println("private show "+str+"..."+i);
}
//私有 无参方法
private void private_prin()
{
System.out.println("private prin");
}
}
Main:
package Main;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception {
//获取字节码文件中 方法
String classname = "demo2.Person";
//寻找名称的类文件,加载进内存 产生class对象
Class cl = Class.forName(classname);
//1.获取所有公有方法的getMethods()
Method[] publie_Method=cl.getMethods(); //获取所有公有方法
System.out.println("Person所有公有方法:");
for(Method m:publie_Method)
{
System.out.println(m);
}
//2.获取本类中的所有的方法(私有 公共 保护)
Method[] all_Method=cl.getDeclaredMethods();//获取本类中的所有方法 (只拿本类中的)
System.out.println("Person本类中的所有方法:");
for(Method m:all_Method)
{
System.out.println(m);
}
}
}
运行结果:
Person:
package demo2;
public class Person {
private int age;
private String name;
public Person( String name,int age) {
this.age = age;
this.name = name;
System.out.println("构造函数Person(有参数)执行");
}
public Person() {
System.out.println("构造函数Person(无参数)执行");
}
//公有 有参方法
public void public_show(String str,int i)
{
System.out.println("public show "+str+"..."+i);
}
//公有 无参方法
public void public_prin()
{
System.out.println("public prin");
}
//私有 有参方法
private void private_show(String str,int i)
{
System.out.println("private show "+str+"..."+i);
}
//私有 无参方法
private void private_prin()
{
System.out.println("private prin");
}
}
Main:
package Main;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception {
//获取字节码文件中 方法
String classname = "demo2.Person";
//寻找名称的类文件,加载进内存 产生class对象
Class cl = Class.forName(classname);
//1.获取所有公有方法的getMethods()
Method[] publie_Method=cl.getMethods(); //获取所有公有方法
System.out.println("Person所有公有方法:");
for(Method m:publie_Method)
{
System.out.println(m);
}
//2.获取本类中的所有的方法(私有 公共 保护)
Method[] all_Method=cl.getDeclaredMethods();//获取本类中的所有方法 (只拿本类中的)
System.out.println("Person本类中的所有方法:");
for(Method m:all_Method)
{
System.out.println(m);
}
}
}
运行结果:
相关文章推荐
- java 反射机制 之 getMethod获取公有方法 getDeclaredMethod获取所有方法 然后invoke执行其所有方法
- [JAVA]反射机制按顺序获取getDeclaredFields()/getDeclaredMethods()
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Java 反射(Reflection) - Class 类 getMethod、getMethods、getDeclaredMethod、getDeclaredMethods四者区别
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Java反射 : Declared的作用 ( 例如 : getMethods和getDeclaredMethods )
- Java,反射的用法,getDeclaredMethods与getMethods 的区别
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 关于获取类的字段有两种方式:getFields()和getDeclaredFields()
- java反射中getDeclaredMethods和getMethods的区别
- java 反射机制(通过getGenericSuperclass()方法获取到父类泛型的类型)
- java 反射机制 之 getDeclaredField 获取私有保护字段, 再setAccessible(true)取消对权限的检查 实现对私有的访问和赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Typeof()与 GetType() ,获取对象的所有公有属性和所有公有方法GetProperties()GetMethods()
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- JavaSE8基础 Class getDeclaredMethods 获取类的所有方法(不包括父类的)
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值