Java动态修改类(添加新方法)

Som*_*ody 1 java

有没有办法在Java中修改类实例?例如,我想提供自定义回调方法.

如何为类的每个实例提供单独的方法/上下文/范围?

在javascript中,很容易修改现有的类.将anonymous函数作为回调传递给任何方法也很容易.有了它的背景和范围.

或者,如果我需要不同的回调,我是否必须为每个请求扩展我的自定义类?

Mar*_*der 5

您可以在实例化中执行此操作:

Whatever w = new Whatever("Something") {
    public void onWhateverDoThis() {
        //...
    }
};
Run Code Online (Sandbox Code Playgroud)

所以我个人最近使用的是模态的回调方法:

ModalManager.show(new Modal("Title", "Text") {
    public void onDismiss() {
        //Do something on dismiss
    }

    public void onConfirm() {
        //Do something on confirm
    }
});
Run Code Online (Sandbox Code Playgroud)