Johannes Luber wrote:
> Thanks for the enlightenment - this is more an obscure Java feature than
> something a neophyte would ever consider. Micheal's C# translation shows
> that Java lacks clarity unnecessarily.
I disagree on both counts. Anonymous classes are an oft-used technique
(e.g., in callbacks) that just takes a little getting used to. As a
former colleague of mine said, you don't give a name to each sock in
your drawers, so why should you have to declared a new named class every
time to want to instantiate an interface or make a minor change to a
concrete class?
Nothing is forcing you to use anonymous classes either. You can do what
Michael did in Java just as well:
class MyToken {
static Set<String, String> legalOptions = new HashSet<String, String>();
static { legalOptions.add(defaultOption); }
...
}
Thus, if anything (or, rather, anyone) you should single out Ter, not Java,
for lacking clarity, as it was his choice to do it this way.
> 1. C# has no built-in Set type so you may use a list or dictionary etc.
> Just use same value for key and value.
That is indeed how Java's HashSet is implemented.
-- O.L.
_______________________________________________
antlr-dev mailing list
[email protected]
http://www.antlr.org:8080/mailman/listinfo/antlr-dev