我在类中有一个方法,大致同时调用两个不同的对象。
public void doSomething(final int i)
{
if(getId() == i)
{
System.out.println("outer "+i);
Platform.runLater(new Runnable()
{
@Override
public void run()
{
System.out.println("inner "+i);
}
}
}
}
检查对象是否应根据其id执行某些操作。如果id是正确的,我使用Platform.runLater,因为我使用JavaFX做了一些事情。
问题是:当ID为1和2的对象应该执行某些操作时,输出如下:
outer 1
outer 2
inner 2
inner 2
为什么内部方法不使用正确的值但是以某种方式使用相同的值两次?
编辑:更正了内部方法