Java 内部方法调用两次,使用相同的最终对象

Java 内部方法调用两次,使用相同的最终对象,java,final,Java,Final,我在一个类中有一个方法,该方法在两个不同的对象中几乎同时被调用 public void doSomething(final int i) { if(getId() == i) { System.out.println("outer "+i); Platform.runLater(new Runnable() { @Override public void run()

我在一个类中有一个方法,该方法在两个不同的对象中几乎同时被调用

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
为什么内部方法不使用正确的值,而是以某种方式使用相同的值两次


编辑:更正了内部方法

请发布您的整个代码粘贴的代码中没有内部打印…在您的代码中输出“外部”两次。这是正确的还是第二个“外部”不应该改为“内部”呢?