java静态非静态不同包之间调用_Java:如何从静态嵌套类引用外部类的非静态字段?...

有没有办法从静态嵌套类引用外部类的非静态字段?

请参阅下面的代码:

public class TestComponent {

String value;

public void initialize(String value) {

this.value = value;

}

public static class TestLabel extends GenericForwardComposer {

Label testLabel;

@Override

public void doAfterCompose(Component comp) throws Exception {

super.doAfterCompose(comp);

testLabel.setValue(value);

}

}

}

此代码在testLabel.setValue(value)处抛出错误,因为我试图对非静态字段进行静态引用。但是,我需要将值设置为非静态,并在静态嵌套类的方法中引用它。我该怎么做?

我们的想法是使用两个不同的值“Label 1”和“Label 2”动态创建两个标签,并将它们附加到两个不同的组件,即vlayout1和vlayout2。但是,当我运行此代码时,标签会附加到每个布局,但两个标签的值都是“标签2”。您可以在以下位置进行测试:

问题在于,两个调用IncludeBuilder创建的testlabel.zul窗口共享静态类TestLabel。在super.doAfterCompoe()之后,两个调用中test label的值都设置为“Label 2”。

我使用的是Zk框架,而ZK没有封闭的实例,所以内部嵌套类TestLabel必须是静态的。

谢谢,

索尼

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值