Ich muss einige Erweiterungsmethoden in meinem Java-Code erstellen. Ich habe einige Posts hier in SO gelesen und Leute schlagen XTend oder Scala vor, um dies zu erreichen.C# Erweiterung Methoden in Java mit Scala
Nun wäre meine Frage .. wenn ich eine Art Adapterschicht in Scala schreibe (dort meine Erweiterungsmethoden hinzufüge) und dann dieses Projekt als Abhängigkeit für mein eigenes Java-Projekt verwende, sind diese erweiterten Methoden für mich verfügbar zu verwenden, oder sie sind nur für den "Umfang des Scala-Projekts" definiert und dann kann die JVM-Ausgabe diese neuen Methoden nicht für das andere Projekt bereitstellen, das sie verwendet?
EDIT: Was ich tun muss, ist eine vollständige Hierarchie der Klassen in einer bestimmten Bibliothek zu erweitern und einige neue Funktionalität geben. Was den ersten Ansatz von Java betrifft, so sollte ich jede Klasse in dieser Hierarchie erweitern, indem ich eine eigene Hierarchie erweiterter Klassen erstelle und die neue Methode dort hinzufüge. Ich möchte das vermeiden und dem Endanwender den Sinn nativer Funktionalität in der ursprünglichen Hierarchie geben.
Grüße.
C# -Erweiterungsmethoden sind nur syntaktische Zucker für statische Methoden, die eine Instanz des erweiterten Typs als erstes Argument verwenden. –
Sagen wir es so: Was genau ist das Problem, das Sie mit diesem (komplizierten?) Ansatz lösen wollen? – GhostCat
Ich stimme dem "syntaktischen Zucker" nicht völlig zu. Es gibt dem Endanwender eine wirklich semantische Nutzung der zusätzlichen Funktionalität, aber ok, darüber werde ich nicht streiten. Ich habe den ursprünglichen Beitrag bearbeitet, um einen Hintergrund meines Szenarios zu geben. –