ich eine Funktion haben, die wie folgt definiert ist:Passing Verfahren Bezug auf das Verfahren zeigt Fehler
public static <T> T readSingleValue(MyTransaction t, String s, T alternativeVal, Function<Integer, T> rsGetter) {
...
return rsGetter.apply(1);
}
Jetzt habe ich diese Methode wie folgt nennen wollen:
readSingleValue(transaction, "select count(0) from users", 0, ResultSet::getInt);
während ResultSet :: getInt () wird als das definiert:
int getInt(int columnIndex)
Mein Compiler zeigt mir für den Parameter folgende Fehler ResultSet::getInt
: Nicht-statische Methode kann nicht aus einem statischen Kontext referenziert werden
Was mache ich hier falsch?
10 haben. Woher würden Sie das 'ResultSet'-Objekt erhalten, um' getInt' aufzurufen? –
Gute Frage, ich habe nicht darüber nachgedacht. Danke – sfandler
Wenn Sie die Variable 'ResultSet rs' haben, können Sie den Methodenverweis' rs :: getInt' als letzten Parameter Ihrer Methode verwenden. – Misha