プログラマメモ2 - programmer no memo2

Anonymous Inner Classes - Anonymous Inner Classes tutorial 2006/06/22
2006/11/26

下記のリンクをみていてちょっとインスパイアされた。

Anonymous Inner Classes - Anonymous Inner Classes tutorial



まさか、そういった現場はないと思うけど、あるクラスの指定されたメソッドだけしか実装してはいけないというルールをつきつけられても、その中で、クラス定義して、内部匿名クラスを使って、なんとかがんばれるかもしれない。。。





public static void print(){

class MyPrintLogic {

public String print(){

return "";

}

};

MyPrintLogic myPrintLogic = new MyPrintLogic(){

@Override

public String print() {

return "override.";

}

};



System.out.println(myPrintLogic.print());



}







さらに匿名クラスに新しくメソッドを追加して実行してみる。

使いずらい。

#注目してもらいたところだけ色を変えている。





public static void test() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{

class A {

};

A a = new A(){

public void b(){

System.out.println("i am a.");

}

};



Method f = a.getClass().getDeclaredMethod("b", null);

f.invoke(a, null);



}



: