• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

local inner class vs anonymous inner class

 
John Eipe
Ranch Hand
Posts: 215
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

I was reading Inner Classes

and came through 2 types of inner classes - local and anonymous.

Could someone explain the differences with a sample code?

Thanks.
 
Abimaran Kugathasan
Ranch Hand
Posts: 2066
Clojure IntelliJ IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Local inner class means, a class declared inside a method. And, anonymous means, a class created on the FLY.
 
Campbell Ritchie
Sheriff
Posts: 48652
56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There are examples of anonymous classes here, and in the older links mentioned.
A local class would look something like thisI'll let you work out how many bits of bad design there are in that code
[edit]Remove one erroneous } and new line from code[edit]
 
Alex Hurtt
Ranch Hand
Posts: 98
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In sticking with Campbell's example, an anonymous class would look like this:



Difference here is you create an actual concrete implementation of the Comparator interface "on the fly" and give it no name/reference assignment. You can't refer back to it later or anything.
This can be useful if/when you have no other use for the Comparator outside the scope where it is used for example. It looks wierd at first to those who are not used to it because you are using the 'new' keyword to instantiate an Interface which you normally can't do except when you are making an implementation of it at the same time like this.
 
John Eipe
Ranch Hand
Posts: 215
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks a ton!

Anonymous classes well explained!!!
 
Campbell Ritchie
Sheriff
Posts: 48652
56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You're welcome
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic