package lecture.etc;
import java.lang.reflect.Method;
import jp.avaj.lib.debug.L;
/** リフレクション - メソッドの取得 Java */
class GetMethod {
public static void main(String[] args) {
Class myClass = MyClass.class;
L.p("-- 自クラスで定義された、すべてのメソッドを取得する");
Method[] methods = myClass.getDeclaredMethods();
for (Method method : methods) {
print(method);
}
L.p("-- publicメソッド(継承したものを含む)を取得する");
methods = myClass.getMethods();
for (Method method : methods) {
print(method);
}
L.p("-- パラメータを指定してメソッドを取得する");
try {
Class[] params = new Class[]{String.class,int.class};
Method method = myClass.getMethod("method22",params);
print(method);
//
params = new Class[]{String.class,Integer.class};
method = myClass.getMethod("method23",params);
print(method);
// 存在しないメソッド
method = myClass.getMethod("method24",params);
print(method);
}
catch(Exception ex) {
ex.printStackTrace();
}
//
}
static class MyClass {
private String method00() { return ""; }
private String method01(String str) { return ""; }
private String method02(String str, int i) { return ""; }
private void method03(int i) {}
private void method04(Integer i) {}
//
protected String method10() { return ""; }
protected void method11(String str) { }
//
public String method20() { return ""; }
public void method21(String str) {}
public void method22(String str,int i) {}
public void method23(String str,Integer i) {}
}
private static void print(Method method) {
L.p(method.toString());
}
}
//---------------------------------------------------
//・目次 Javaエトセトラ
// http://blogs.yahoo.co.jp/artery2020/40576157.html
//・目次 - Java入門
// http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
// http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
// http://blogs.yahoo.co.jp/artery2020/39657784.html
//---------------------------------------------------
import java.lang.reflect.Method;
import jp.avaj.lib.debug.L;
/** リフレクション - メソッドの取得 Java */
class GetMethod {
public static void main(String[] args) {
Class myClass = MyClass.class;
L.p("-- 自クラスで定義された、すべてのメソッドを取得する");
Method[] methods = myClass.getDeclaredMethods();
for (Method method : methods) {
print(method);
}
L.p("-- publicメソッド(継承したものを含む)を取得する");
methods = myClass.getMethods();
for (Method method : methods) {
print(method);
}
L.p("-- パラメータを指定してメソッドを取得する");
try {
Class[] params = new Class[]{String.class,int.class};
Method method = myClass.getMethod("method22",params);
print(method);
//
params = new Class[]{String.class,Integer.class};
method = myClass.getMethod("method23",params);
print(method);
// 存在しないメソッド
method = myClass.getMethod("method24",params);
print(method);
}
catch(Exception ex) {
ex.printStackTrace();
}
//
}
static class MyClass {
private String method00() { return ""; }
private String method01(String str) { return ""; }
private String method02(String str, int i) { return ""; }
private void method03(int i) {}
private void method04(Integer i) {}
//
protected String method10() { return ""; }
protected void method11(String str) { }
//
public String method20() { return ""; }
public void method21(String str) {}
public void method22(String str,int i) {}
public void method23(String str,Integer i) {}
}
private static void print(Method method) {
L.p(method.toString());
}
}
//---------------------------------------------------
//・目次 Javaエトセトラ
// http://blogs.yahoo.co.jp/artery2020/40576157.html
//・目次 - Java入門
// http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
// http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
// http://blogs.yahoo.co.jp/artery2020/39657784.html
//---------------------------------------------------