Reputation: 339
I know that such "general" questions shouldn't be asked, but can someone help me translate the following code from Groovy to Java. My main problem is, that I really do not know which datatypes in Java are similar to the ones of Groovy. Any help is welcome!
Many thanks!
def registrations = [:]
public void register(Class clazz, MessageListener listener) {
def listeners = registrations.get(clazz)
if (!listeners) {
listeners = [] as Set;
registrations.put(clazz, listeners)
}
listeners << listener
}
Upvotes: 2
Views: 1157
Reputation: 495
It would be something like this (untested):
Map<Class, Set<MessageListener>> registrations = new HashMap<Class, Set<MessageListener>>();
public void register(Class clazz, MessageListener listener) {
Set<MessageListener> listeners = registrations.get(clazz);
if (listeners == null) {
listeners = new HashSet<MessageListener>();
registrations.put(clazz, listeners);
}
listeners.add(listener);
}
Upvotes: 3
Reputation: 171054
Not an answer to the question (@Stmated has that covered), but if this is for a comparison to compare Groovy and Java, I believe your Groovy code could be better:
def registrations = [:].withDefault { [] as Set }
public void register(Class clazz, MessageListener listener) {
registrations[ clazz ] << listener
}
Upvotes: 2
Reputation: 346240
Simply use java.util.HashMap
and java.util.HashSet
for registrations
and listeners
respectively.
Upvotes: 1