欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Java

java中获得一个类的方法介绍

程序员文章站 2022-05-26 16:05:09
...
通过class.getMethos()方法获得类的所有公共方法包括父类的公共方法。
java中获得一个类的方法介绍java中获得一个类的方法介绍
 1 import lombok.Data; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  
 * 测试的实体类 6  * @Data 编译后会自动生成set、get、无惨构造、equals、canEqual、hashCode、toString方法 7  
 */ 8 @Data 9 public class Person {10     private String name;11     public String nickName;12     private int age;13     private void say(){14         System.out.println("say hunt");15     }16 }
View Code
java中获得一个类的方法介绍java中获得一个类的方法介绍
 1 import java.lang.reflect.Method; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  
 */ 6 public class NewInstanceTest { 7     public static void main(String[] args) { 8         
 Class<Person> personClass = Person.class; 9         try {10             
 Method[] methods = personClass.getMethods();11             for (Method m:methods) {12                 System.out.println(m);13             }14         } catch (Exception e) {15             e.printStackTrace();16         }17     }18 }
View Code

java中获得一个类的方法介绍

通过class.getDeclaredMethods()方法获得类的所有属性(公共,保护,默认,和私有方法)。

java中获得一个类的方法介绍java中获得一个类的方法介绍
 1 import java.lang.reflect.Method; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  
 */ 6 public class NewInstanceTest { 7     public static void main(String[] args) { 8         
 Class<Person> personClass = Person.class; 9         try {10             
 Method[] methods = personClass.getDeclaredMethods();11             for (Method m:methods) {12                 
 System.out.println(m);13             }14         } catch (Exception e) {15             
 e.printStackTrace();16         }17     }18 }
View Code

java中获得一个类的方法介绍

注意:返回的方法数组中的元素没有排序,也没有任何特定的顺序。

获得具体的方法:

java中获得一个类的方法介绍java中获得一个类的方法介绍
 1 import java.lang.reflect.Method; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  */ 6 public class NewInstanceTest { 7     public static void main(String[] args) { 8         Class<Person> personClass = Person.class; 9         try {10             Person p = personClass.newInstance();11             Method method = personClass.getMethod("setName", String.class);12             method.invoke(p,"hunt");13             System.out.println(p);14             method = personClass.getMethod("getName");15             System.out.println("getName方法"+method.invoke(p));16             method = personClass.getDeclaredMethod("say");17             method.setAccessible(true);//私有方法要授权18             method.invoke(p);19         } catch (Exception e) {20             e.printStackTrace();21         }22     }23 }
View Code

总结:personClass.getDeclaredMethod("say");

   method.setAccessible(true);

基于对属性的保护,默认为false。这里相当于一个授权的过程,设置true来允许操作这个属性。

以上就是java中获得一个类的方法介绍的详细内容,更多请关注其它相关文章!