0

我在一个类中有一个方法,它大致同时被两个不同的对象调用。

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

为什么内部方法不使用正确的值,而是以某种方式两次使用相同的值?

编辑:更正了内部方法

4

0 回答 0