简体   繁体   中英

Groovy to Java Code

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
   }

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

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
}

只需将java.util.HashMapjava.util.HashSet分别用于registrationslisteners

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM