我有按钮,我想做这样的事情:
Button b=new Button(){public int a;};
b.a=5;
如何在java中执行此操作?
答案 0 :(得分:1)
您似乎想要一个自定义Button
对象。
只需创建一个扩展名为Button
的新类,并在该类中声明a
变量以及您要添加的任何其他方法。
像
这样的东西public class SomeClass extends Button
{
public int a;
}
public class SomeOtherClass
{
public static void main(String args[])
{
SomeClass someClass = new SomeClass();
someClass.a = 5;
}
}
如果你真的不想扩展课程,那就不可能了。遗憾。
此外,您的示例实际上是创建一个扩展Button
的匿名类。
答案 1 :(得分:1)
无法在不扩展变量的情况下向类中添加变量。但是,扩展类不需要命名:您可以使用匿名类,其方式类似于帖子中的片段。
然而,诀窍是在添加变量后访问变量:你可以通过改变从类中引用的对象来实现它,如下所示:
// 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();
...
}
};
当您以这种方式进行设置时,a
类的匿名子类someMethod()
可以访问方法中对Button
状态的更改。< / p>
答案 2 :(得分:0)
没有扩展课程?抱歉。你做了一个扩展课程。习惯它。
public class OneAtButton extends Button {
public int aWellNamedClassMemberVariable;
OneAtButton () { // constructor
aWellNamedClassMemberVariable = 5;
}
} // class OneAtButton
答案 3 :(得分:0)
您无法为创建该类的新对象的同一行中的类创建新变量。如果您想要将新变量添加到按钮类中,请修改类以包含新变量或创建类扩展,如Jean-FrançoisSavard所说。