I’m currently taking a course in Java and I’ve run into some confusing code.
Example:
Runnable runnable = new Runnable()
{
public void run()
{
//doStuff
}
};
I don’t really get what this code is doing.
How can the run method be associated with an instance of a class?
I googled “Runnable” and found out that it is an interface. Am I implementing the interface by declaring the run method between curly brackets ? Can this be done for any interface in java ?
I could use some links/explanations. Thank you!
It’s an anonymous inner class that’s implementing the interface
Runnable. Yes, you can implement any interface this way, although there are reasons why you would or wouldn’t in any given case (lack of reusability being a big one in the “wouldn’t” column). More about anonymous classes here, but it’s basically a convenient form of this:…provided
Foois an inner (or “nested”) class. More about nested classes here.