Ich habe eine Methodensignatur zum Abrufen der Setter-Methode unter Verwendung von Reflektion basierend auf einer gegebenen Getter-Methode vom Typ Method. Unterschrift des Verfahrens ist unter:Klassentyp in Lambda innerhalb von Collectors-map-java8
Method getSetter(final Method getterMethod, final Class classType)
nun von der Methode für eine Klasse-I-Karte von Getter-Methode zugeordnet Setter-Methode wollen. Mein Code ist unten:
final Method[] methods = classType.getMethods();
Stream.of(methods)
.filter(ReflectionUtils::isGetter)
.collect(Collectors.toMap(Function.identity(), (method) -> getSetter(method, classType)));
ich bei getSetter Kompilierungsfehler bin immer (Methode, Classtype) Es sagt Wrong erste Art Argument gefunden: <lambda parameter>
, erforderlich: java.lang.reflect.Method
Ich habe auch versucht, den Typ für die Angabe Lambda-Parameter. Siehe unten
Stream.of(methods)
.filter(ReflectionUtils::isGetter)
.collect(Collectors.toMap(Function.identity(), (Method method) -> getSetter(method, classType)));
Jetzt heißt es nicht, funktionale Schnittstelle Typ abzuleiten.
ich kann dies nicht reproduzieren. https://ideone.com/xt5Fb6 Bitte überprüfen Sie Ihre Importe, spezifizieren Sie die genaue Version von Java und welchen Compiler Sie benutzen. –
Hey danke !! Eigentlich für die getSetter Methode, die ich NoSuchMethodException geworfen habe, hätte ich stattdessen einen catch block versuchen sollen. Ich habe mich verändert. Es funktionierte. – Sampath