ホームページ  >  記事  >  Java  >  Javaでクラスを取得する方法の紹介

Javaでクラスを取得する方法の紹介

零下一度
零下一度オリジナル
2017-06-30 10:33:551560ブラウズ

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);

属性に基づく 保護、デフォルトは false です。これは認可プロセスに相当し、true を設定してこの属性の操作を許可します。

以上がJavaでクラスを取得する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。