我知道这样的"将军"问题不应该被问到,但有人可以帮助我将以下代码从Groovy转换为Java。我的主要问题是,我真的不知道Java中哪些数据类型与Groovy类似。欢迎任何帮助!
非常感谢!
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
}
答案 0 :(得分:3)
这将是这样的(未经测试):
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);
}
答案 1 :(得分:2)
不是问题的答案(@Stmated已涵盖的内容),但如果这是比较Groovy和Java,我相信您的Groovy代码可能会更好:
def registrations = [:].withDefault { [] as Set }
public void register(Class clazz, MessageListener listener) {
registrations[ clazz ] << listener
}
答案 2 :(得分:1)
只需分别对java.util.HashMap
和java.util.HashSet
使用registrations
和listeners
。