2011-11-24 50 views
2

我知道不应该询问这样的“一般”问题,但是有人可以帮我将下面的代码从Groovy转换为Java。我的主要问题是,我真的不知道Java中的哪些数据类型与Groovy的数据类型相似。欢迎任何帮助!Groovy到Java代码

非常感谢!

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 
    } 

回答

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); 
} 
+0

*咳嗽*,我发现2个字符的区别在我们的代码:d – bezmax

+0

嗯,我贴我的你之前4秒,所以我赢了! ; D 编辑:或者可能不是,因为我的编译没有,因为缺乏分号。 Edit2:但我也修正了这个问题。 – Stmated

+0

*可耻删除他的帖子* – bezmax

1

分别只需使用java.util.HashMapjava.util.HashSetregistrationslisteners

2

不是一个问题的答案(@Stmated有盖的),但如果这是一个比较来比较Groovy和Java,我相信你Groovy代码可以更好地:

def registrations = [:].withDefault { [] as Set } 

public void register(Class clazz, MessageListener listener) { 
    registrations[ clazz ] << listener 
} 
+0

你能帮我[我的问题](http://stackoverflow.com/questions/9001066/converting-java-code-into-groovy) – Ricky