java partielle Klassen

Kleine Präambel. Ich war guter java-Entwickler auf jdk 1.4 beschränkt. Nachdem ich es umgestellt haben auf anderen Plattformen, aber hier komme ich mit dem problem also Frage ist stark über die jdk 1.6 (oder höher 🙂 ). Ich habe 3 gekoppelt ist Klasse, die Art der Kopplung befasst sich mit nativen Methoden. Balg ist ein Beispiel für diese 3 Klasse

public interface A
{
     public void method();
}
final class AOperations
{
     static native method(. . .);
}
public class AImpl implements A
{
    @Override
    public void method(){ 
        AOperations.method( . . . );
    }
}

So gibt es Eine Schnittstelle, die implementiert ist in der nativen Weg von AOperations, und AImpl nur die Delegierten den Aufruf der Methode auf native Methoden.
Diese Beziehungen werden automatisch generiert. Alles ok, aber ich stand vor dem problem. Irgendwann interface wie Ein Bedürfnis aussetzen iterator-Funktion. Kann ich beeinflussen-Schnittstelle, aber nicht ändern können, die Umsetzung (AImpl).

Sagen: in C# ich könnte das problem beheben, indem Sie einfach teilweise:
(C# Beispiel)

partial class AImpl{
 ... //here comes auto generated code
} 

partial class AImpl{
 ... //here comes MY implementation of 
 ... //Iterator 
} 

So, hat java Analog der teilweisen oder so ähnlich.

BEARBEITET:
Laut Kommentar von @pgras ich brauche einige Klarstellungen. AImpl ist nicht in Vakuum, gibt es einige factory (native) implementiert, liefert Instanz von AImpl, das ist, warum die Erstellung der Vererbung von AImpl, ist nicht zutreffend.

BEARBEITET 2:
Kann es nicht betreffen, aber, wie es gemacht wird von JUnit 4:

public class SomeTest {
 ...
 //there is no direct inheritance from Assert, but I can use follow:
 assertTrue(1==1); //HOW DOES it works??
  • assertTrue ist eine statische Methode in Assert. Es wird eine import static org.junit.Assert.* oder dergleichen irgendwo. Wie es ist alles statisch, es wird nicht wirklich helfen.
InformationsquelleAutor Dewfy | 2010-03-23
Schreibe einen Kommentar