Überladen einer Methode nach Methode mit einer Parameterliste, die genau den gleichen Typ enthält, aber mit anderen Typen parametriert ist
Ich habe eine Methode:
public List<Integer> convertBy(Function<String, List<String>> flines, Function<List<String>, String> join, Function<String, List<Integer>> collectInts) {
return collectInts.apply(join.apply(flines.apply((String) value)));
}//first method
public Integer convertBy(Function<List<String>, String> join, Function<String, List<Integer>> collectInts, Function<List<Integer>, Integer> sum) {
return sum.apply(collectInts.apply(join.apply((List<String>) value)));
}//second method
Trotzdem ihre Parameter mit verschiedenen Typen parametrisiert sind, kann ich die erste Methode nicht überladen. Ich verwende möglicherweise eine andere Schnittstelle alsFunction<T,R>
aber ich weiß nicht, welches ausreichen würde, als ich die Liste durchgesehen habe und keines finden konntehttps: //docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.htm.
Parameter in diesen Funktionen sind:
flines
- Liest die Datei aus dem angegebenen Pfad String
) und gibt eine Liste der Zeilen in dieser Datei zurück List<String>
)
join
- verkettet Element von gegebenemList<String>
und gibt ein @ zurüString
collectInts
- analysiert das angegebeneString
und gibt eine Liste der in diesem @ gefundenen Ganzzahlen zurüString
.
sum
- fügt Elemente aus @ hinList<Integers>
und gibt die Summe @ zurü
Fragen
Kann ich das erste mit dem zweiten überladen?
Welche andere funktionale Schnittstelle kann ich neben der Funktion verwenden? Ich denke keine, da sich die Argumente und Ergebnisse immer unterscheiden.