4 ms·
I am no Java expert but they write that this syntax automatically creates a anonymous inner class - every time you create a collection instance in this way. Or
by LinaLauneBaer 14y ago
I am no Java expert but they write that this syntax automatically creates a anonymous inner class - every time you create a collection instance in this way. Or am I wrong about this?
Most of the examples given are creating static objects but the last example a non-static object is created in the same way. Imagine you are doing this a couple of times then you end up with a lot of anonymous classes. Isn't there a limit on the number of classes you can have? At least it makes debugging problematic.
But I might be wrong about this since I am not a Java expert...
- guard-of-terra 14y agoIn Java, you have a gazzilion of classes. You have seriolusly many classes. And if you use Clojure or Scala or JRuby, you number of classes multiplies. You just stuff a hundred of jars full of classes into your classpath and never look back. JVM hums happily and does not care about however much classes you have. No problems with debugging either because why would it be? Anonymous classes are as introspective as non-anonymous.
- brown9-2 14y agoIn the majority of cases where you are deploying your java code on a server you own, having a few dozen or hundred extra classes is not a big deal. Each adds maybe a few kb to the size the jar, and as for loading costs, a class is only loaded into a running JVM once. The cases in which to worry about stuff like this is if you need to load the code on someone else's machine, like with an applet or Android.
- jimktrains2 14y agoIsn't this what jars are suppose to make transparent and simple?
- mindslight 14y agoIt's one class per use of this technique. It's not redefined every time the code runs.