Java8にgetDeclaredMethodsでクラスのメソッドを取得する
環境
Eclipse 2019
Java8
Windows 10 64bit
関数
public Method[] getDeclaredMethods() throws SecurityException
このClassオブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethodオブジェクトが格納された配列を返します。
これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。
戻り値:
このクラスの宣言されたすべてのメソッドを表すMethodオブジェクトの配列
使用例
package com.arkgame.bat;
import java.lang.reflect.Method;
public class FieldsDemo {
public static void main(String[] args) {
Class<User> cu = User.class;
// クラスのメソッドを取得します
Method[] md = cu.getDeclaredMethods();
System.out.println("クラスのメソッドを取得する結果");
// for文で取得した値を表示
for (Method t : md) {
System.out.println(t);
}
}
}
//クラスUserの定義
class User {
private String addr = "tokyo";
private int age = 23;
/**
* @return addr
*/
public String getAddr() {
return addr;
}
/**
* @return age
*/
public int getAge() {
return age;
}
}
package com.arkgame.bat;
import java.lang.reflect.Method;
public class FieldsDemo {
public static void main(String[] args) {
Class<User> cu = User.class;
// クラスのメソッドを取得します
Method[] md = cu.getDeclaredMethods();
System.out.println("クラスのメソッドを取得する結果");
// for文で取得した値を表示
for (Method t : md) {
System.out.println(t);
}
}
}
//クラスUserの定義
class User {
private String addr = "tokyo";
private int age = 23;
/**
* @return addr
*/
public String getAddr() {
return addr;
}
/**
* @return age
*/
public int getAge() {
return age;
}
}
package com.arkgame.bat; import java.lang.reflect.Method; public class FieldsDemo { public static void main(String[] args) { Class<User> cu = User.class; // クラスのメソッドを取得します Method[] md = cu.getDeclaredMethods(); System.out.println("クラスのメソッドを取得する結果"); // for文で取得した値を表示 for (Method t : md) { System.out.println(t); } } } //クラスUserの定義 class User { private String addr = "tokyo"; private int age = 23; /** * @return addr */ public String getAddr() { return addr; } /** * @return age */ public int getAge() { return age; } }
実行結果
クラスのメソッドを取得する結果
public int com.arkgame.bat.User.getAge()
public java.lang.String com.arkgame.bat.User.getAddr()