Heim  >  Artikel  >  Java  >  Einführung in die Methode zum Abrufen einer Klasse in Java

Einführung in die Methode zum Abrufen einer Klasse in Java

零下一度
零下一度Original
2017-06-30 10:33:551560Durchsuche

Rufen Sie alle öffentlichen Methoden der Klasse, einschließlich der öffentlichen Methoden der übergeordneten Klasse, über die Methode class.getMethos() ab.

 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 }
Code anzeigen
 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 }
Code anzeigen

Rufen Sie alle Eigenschaften der Klasse ab (öffentlich, geschützt, Standard und privat über class.getDeclaredMethods( ) Methode Methode).

 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 }
Code anzeigen

Hinweis: Die Elemente im zurückgegebenen Methodenarray sind weder sortiert noch in einer bestimmten Reihenfolge.

Holen Sie sich die spezifische Methode:

 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 }
Code anzeigen

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

   method.setAccessible(true);

Basierend auf dem Schutz von Attributen ist der Standardwert falsch. Dies entspricht einem Autorisierungsprozess, bei dem „true“ gesetzt wird, um den Betrieb dieses Attributs zu ermöglichen.

Das obige ist der detaillierte Inhalt vonEinführung in die Methode zum Abrufen einer Klasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn