Je veux écrire une bibliothèque RMI dans/pour ceylon (puisque je n'en ai pas trouvé jusqu'ici).RMI/Proxy dans ceylon et relation avec des méthodes non-par défaut
La première chose dont j'ai besoin est un proxy. En java je quelque chose comme
Proxy.newProxyInstance(classLoader, interfaces, handler);
1. Y at-il quelque chose d'équivalent à Ceylon? (N'ont pas trouvé quelque chose)
Toute tentative d'écrire quelque chose comme ça moi-même, je suis tombé sur cette solution for the jvm en utilisant la manipulation de code d'octets. Nifty et exactement ce que je veux. Notez que cela peut même produire un proxy pour une classe, pas seulement pour une interface comme dans Java. À Ceylan, cela devrait être légitime, car il n'y a pas de champs et nous pouvons simuler la classe entière avec des appels de méthode.
2. Si créer des proxies pour les classes est un non-dire juste me dire. En outre, quelle est l'intuition de Ceylan/futur sur les procurations? Doit-il y avoir (non) de procurations?
Dans un avenir avec proxies nous avons un problème majeur:
En Ceylon nous avons le mot-clé default
, sans une méthode ne peut pas être raffiné/écrasé. Cela entraîne également des méthodes final
pour les classes de sortie Java compilées. De ce fait (même pas), la manipulation du code d'octet peut écraser ceux-ci et les rediriger vers un gestionnaire d'invocation/intercepteur.
3. Comment traitons-nous cela?
Je suppose pas du tout? Je reçois totalement l'idée d'interdire le raffinement des méthodes et les mots-clés default
/final
, mais cela entrave RMI/proxies pour les classes.
4. Les proxies pour les classes sont-ils une mauvaise idée?
Et oui, il y a tellement d'autres questions que je suis en train de penser au sujet et enquête sur: JS mise en œuvre, les interfaces et les méthodes par défaut, etc.
Ces points semblent être les plus pertinents au moment, Commençons donc ici.