日期:2014-05-20  浏览次数:20573 次

A b=new A(){定义一些新方法,新字段};如何调用这些新方法和新字段?
A b=new A(){定义一些新方法,新字段};
  如果A是个非抽象的类,大括号里面定义一些新的方法和字段有什么意

义?????好像我也没法调用。。。
我试了 b.新方法;但行不通

------解决方案--------------------
只能用反射去调用,但是完全没看出有必要这样做的理由。
------解决方案--------------------
反射调用。例子:
Java code

import java.awt.event.*;
import java.lang.reflect.*;

public class Test {
    public static void main(String[] args) throws Exception {
        ActionListener ac = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("actionPeformed");
            }

            public void myMethod() {
                System.out.println("myMethod");
            }
        };
        ac.actionPerformed(null);
        Method myMethod = ac.getClass().getMethod("myMethod", new Class[0]);
        myMethod.invoke(ac);
    }
}