java - 添加新变量而不扩展类

标签 java class

我有按钮,我想做这样的事情:

Button b=new Button(){public int a;};
b.a=5;

如何在 java 中执行此操作?

最佳答案

如果不扩展类,就无法将变量添加到类中。但是,不需要命名扩展类:您可以改用匿名类,其方式类似于您帖子中的片段。

然而,诀窍是在添加变量后访问它:您可以通过改变从类中引用的对象来实现,如下所示:

// Prepare a mutable object for use in your class
final AtomicInteger a = new AtomicInteger(123);
Button b = new Button(){
    public void someMethod() {
        ...
        int n = a.intValue();
        ...
    }
};

当您以这种方式进行设置时, 的匿名子类的 someMethod() 可以访问方法中 a 状态的更改按钮类。

关于java - 添加新变量而不扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28891334/

相关文章:

java - 字符串声明 -> Null、空字符串、一些值 - 字符串声明

python - __init__(self, list=[]) 只为每个实例化创建一个列表而不是一个新列表?

c++ - 重载的子类函数不能调用相似名称的父类

swift - 类类型属性不应该有 static 关键字吗?

c++ - 具有对象数组的对象

初学者的 PHP 类继承

java - 如何从两个GPS坐标计算方向的角度

java - 使用 Twitter API 从推文获取坐标

javascript - 通过 Nashorn javascript jjs 进行 JMX 连接

java - 使用 zip 压缩保存 BufferedImage