class.getMethos() メソッドを通じて、親クラスのパブリック メソッドを含むクラスのすべてのパブリック メソッドを取得します。
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 }
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 }
class.getDeclaredMethods()メソッドを通じてクラスのすべてのプロパティを取得します(パブリック、プロテクト、デフォルト、およびプライベートメソッド)。
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 }
注: 返されたメソッド配列内の要素は並べ替えられておらず、特定の順序でもありません。
特定のメソッドを取得します:
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 }
概要: personClass.getDeclaredMethod("say"); class="java plain">method.setAccessible(
true
);
总结:personClass.getDeclaredMethod("say");
method.setAccessible(
true
);
以上がJavaでクラスを取得する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。