2 つの異なるオブジェクトをほぼ同時に呼び出すクラスのメソッドがあります。
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 が正しければ、JavaFX で何かを行うため、Platform.runLater を使用します。
問題は、ID が 1 と 2 のオブジェクトが何かを実行する必要がある場合、出力は次のようになることです。
outer 1
outer 2
inner 2
inner 2
内部メソッドが正しい値を使用しないのに、なぜか同じ値を 2 回使用するのはなぜですか?
編集:内部メソッドを修正