Groovy到Java代码

时间:2011-11-24 13:42:59

标签: java groovy

我知道这样的"将军"问题不应该被问到,但有人可以帮助我将以下代码从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
   }

3 个答案:

答案 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.HashMapjava.util.HashSet使用registrationslisteners