Interface Functional interface mit mehreren Methoden

UnknownInnocent

UnknownInnocent

Bekanntes Mitglied
Hallo, ich habe ein Interface der Art
Java:
public interface Test<T extends AClass> {
    boolean compare(T[] lhs, T[] rhs);
   
    public static <T extends AClass> Test<T> compareAll() {
        return (T[] lhs, T[] rhs) -> {
            ....
        };
    }
}
Nun würde ich das gerne noch erweitern:
Java:
public interface Test<T extends AClass> {

    boolean compare(T[] lhs, T[] rhs);
    boolean compare(T lhs, T[] rhs);

    public static <T extends AClass> Test<T> compareAll() {
        return (T[] lhs, T[] rhs) -> {
            ....
        };
    }
   
     public static <T extends AClass> Test<T> contains() {
        return (T lhs, T[] rhs) -> {
            ....
        };
    }
}

Jetzt wird mir aber in beiden Fällen das vor dem Pfeil in der Lambda-Expression unterstrichen und es heißt "The target type of this expression must be a functional interface". Darf man sowas nicht machen, bzw wieso darf man das nicht oder mache ich da nur irgendwas falsch?
 
Zuletzt bearbeitet:
UnknownInnocent

UnknownInnocent

Bekanntes Mitglied
hmm blöd... wie würde man das, was ich da brauche, am geschicktesten machen?
 
L

LimDul

Top Contributor
Das ist auch recht einfach erklärt, warum das nicht geht.

Deine Methode compareTo gibt eine Implementierung von test zurück, bei der aber die nur die Methode mit den beiden Array Parameters definiert ist. Was soll folgender Code machen

Java:
public class MyClass {

public void doSomething() {
  test myTest = test.compareAll();
 T lhs = ...;
 T[] rhs = ...;
  mytest.compare(lhs, rhs);
}
}
Die Rückgabe von compareAll definiert nur die Methode mit den beiden Array Parametern.. Das weiß aber der Aufrufer nicht, der kann auch die Methode aufrufen, wo nur ein Array Parameter definiert ist.


Was man machen kann, ist eine default Methode definieren - sprich, dass die compare Methode mit nur einem Array Parameter ein Array erzeugt und an die andere Methode delegiert.

PS: Klassen-Namen werden in Java groß geschrieben :)
 
UnknownInnocent

UnknownInnocent

Bekanntes Mitglied
Was man machen kann, ist eine default Methode definieren - sprich, dass die compare Methode mit nur einem Array Parameter ein Array erzeugt und an die andere Methode delegiert.

PS: Klassen-Namen werden in Java groß geschrieben :)
Okay, danke, dann werde ich das so machen.

Ja eigenlich sind meine Klassen auch alle groß geschrieben nur hier im Forum hat sich das mit nem Tippfehler und copy-paste dann so ergeben, ich habs aber mal korrigiert ;)
 
UnknownInnocent

UnknownInnocent

Bekanntes Mitglied
Was man machen kann, ist eine default Methode definieren - sprich, dass die compare Methode mit nur einem Array Parameter ein Array erzeugt und an die andere Methode delegiert.
Ich kriege das nicht hin, könnte ich da noch eine etwas detaillierter Anleitung kriegen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
UnknownInnocent Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6
L OOP Interface Prinzip? Java Basics - Anfänger-Themen 6
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
A Frage zu Interface Java Basics - Anfänger-Themen 16
J Interface Java Basics - Anfänger-Themen 3
W Interface Java Basics - Anfänger-Themen 1
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
J Frage zu dem Thema interface Java Basics - Anfänger-Themen 5
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
S Interface-Methode abrufen? Java Basics - Anfänger-Themen 2
P Vererbung Klasse erbt von abstrakter Klasse implementiert Interface Java Basics - Anfänger-Themen 2
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
P interface Java Basics - Anfänger-Themen 1
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
M Interface als Datentyp Java Basics - Anfänger-Themen 12
K Interface Methoden überschreiben Java Basics - Anfänger-Themen 1
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2
G Interface klasse Java Basics - Anfänger-Themen 4
N Interface Interface (sinnvoll) erzeugen Java Basics - Anfänger-Themen 8
D Interface namen bekommen Java Basics - Anfänger-Themen 3
O Frage zu Interface Java Basics - Anfänger-Themen 5
J Interface compatible to a class Java Basics - Anfänger-Themen 7
B non static interface Methode Java Basics - Anfänger-Themen 16
G Was ist ein Interface? Java Basics - Anfänger-Themen 11
X Generisches Interface Java Basics - Anfänger-Themen 3
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
D Interface für Verhalten von "=="? Java Basics - Anfänger-Themen 21
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
N Interface Klassen gegenseitig kommunizieren Java Basics - Anfänger-Themen 8
K Interface als Instanzvariable = gutes Design Java Basics - Anfänger-Themen 6
K In Eclipse Interface Implementierungen auslesen Java Basics - Anfänger-Themen 3
K Schnittstelle - Interface unklar Java Basics - Anfänger-Themen 4
M Interface als Konstruktorparameter nutzen, um Funktion zu plotten Java Basics - Anfänger-Themen 14
C Comparable Interface Java Basics - Anfänger-Themen 8
T Interface Interface Comparable Problem... Java Basics - Anfänger-Themen 2
T Interface implementieren mit Abstrakten Typen? Java Basics - Anfänger-Themen 4
T Interface Implementieren Java Basics - Anfänger-Themen 5
S Interface Java Basics - Anfänger-Themen 24
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
B Interface NodeList wird als Klasse verwendet? Java Basics - Anfänger-Themen 8
M Interface und Abstrakte Klassen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen


Oben