2011-11-24 62 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