比方说,我们有这样从现有实例和新的类实例新实例改变现有的类PARAMS
public class foo {
int number = 0;
public void setNumber(int number) {
this.number = number;
}
}
public class bar extends foo {
/* Some other utilities added to the foo class */
public bar() {
super();
}
}
的设置,我们有这个任务运行
Scheduler.schedule(1000/* Every second */,() -> {
fooManager.forEach(f -> System.out.println(f.getNumber()));
})
现在,如果我们这样做:
Foo fo = new foo();
fooManager.store(fo);
Bar ba = new bar();
我怎样才能让ba
访问fo
在方法,无需在ba
存储fo
,做ba.getFoInstance().setNumber()
做ba.setNumber()
代替
说明V2:我想ba.setNumber()
打电话fa.setNumber()
寻找这样的事情:Bar ba = fo
,但你不能这样做,因为它抛出ClassCastException
。
'super()'将调用foo类的构造函数。你可以通过'super.setNumer(...)'来调用'setNumber()'方法。 – user2004685
@ user2004685“fooManager”中存有'foo',所以如果你编辑栏,它不会编辑'foo'列表中的foo元素。编辑 - 也不会有效果,因为'ba.setNumber()默认调用超级方法 – DeprecatedLuke
目前还不清楚你在这里要做什么。即使'ba'和'fo'是不同的对象,并且没有在'ba'内存储'fo'的引用,你想'ba.setNumber()'实际执行'fo.setNumber()'? –