当前位置: 代码迷 >> J2SE >> A b=new A(){定义一些新方法,新字段};怎么调用这些新方法和新字段
  详细解决方案

A b=new A(){定义一些新方法,新字段};怎么调用这些新方法和新字段

热度:53   发布时间:2016-04-24 01:51:41.0
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);    }}
  相关解决方案