0

I have a method in a class that is called roughly at the same time two different objects.

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);
            }
        }
    }
}

It is checked if the object is supposed to do something according to its id. If the id is correct, I use Platform.runLater because I do something with JavaFX.

The problem is: When the objects with the IDs 1 and 2 should do something, the output is like this:

outer 1
outer 2
inner 2
inner 2

Why doesn't the inner method uses the correct value but somehow uses the same value twice?

Edit: Corrected the inner method

user1406177
  • 1,328
  • 2
  • 22
  • 36

0 Answers0