jsweet - mathieu-bergeron/aquiletour2021 GitHub Wiki

Particularité de JSweet

Introspection

  1. Il n'y a pas d'objet Class<?> pour les interfaces

    • une interface est stoquée comme un chaîne
  2. getClass().getInterfaces() est «plat»: ça contient les interfaces et les super-interfaces

  3. RÉSULTAT: on a un ClassSignature mais pas de InterfaceSignature

    • le ClassSignature se colle à se qui est possible en JSweet

Les M̀ap

  1. Un Map<String, ?> est transpilé vers un objet JSON {}

    • le put("a",val) est map["a"] = val
  2. Un M̀ap<Object, ?> est aussi transpilé vers un objet JSON {}

    • mais au moment de faire un put, JSweet insère un map.entries (un entrySet) et c'est dans m.entries que le put est fait
  3. Ce qui veut dire qu'un Map vide a aucune information de type

    • et l'attribut ou le getter non plus

Exceptions à l'overloading de méthode

  1. En principe à fonctionne d'avoir methode(String x) et methode(String x, boolean y), mais il y a certaines exception

  2. ATTENTION: en cas d'exception, le code Jdk va fonctionner, mais le code JSweet ne va pas toujours appeler la bonne méthode

  3. Exception importante: object Vs Class<?

    • il faut faire methode(Object object) et methodeForClass(Class<?> _class)

le equals sur des collections est implanté comme indexOf

  1. C'est donc le == qui est utilisé pour les items plutôt que equals

  2. Dans Ntro.collections() on a des méthodes utilitaires quand c'est important

⚠️ **GitHub.com Fallback** ⚠️