Selon:Des références de méthode peuvent-elles être utilisées pour accéder à des méthodes statiques?
https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
Il ressemble à son possible, il essaie cependant des rendements réels d'une erreur de compilation. Il est plus logique que cela ne soit pas possible car nous ne pouvons pas implémenter des interfaces avec des méthodes statiques.
public class SomeClass {
static public boolean getB(){
return false;
}
}
List<SomeClass> list = new ArrayList<>();
list.add(new SomeClass());
// below causes compile error, which I expect, however documentation indicates oherwise
list.stream().filter(SomeClass::getB).collect(Collectors.toList());
Voici l'erreur de compilation:
« marqueurs multiples à cette ligne - La méthode getB() du SomeClass type devraient être accessibles d'une manière statique - Le filtre méthode (prédicats) dans le type Stream n'est pas applicable pour les arguments (SomeClass :: getB) "
Ajouter l'erreur de compilation? – nbokmans
Qu'est-ce que 'list' ??? Où est-il déclaré? – CKing
Peut-être provoqué par une incompatibilité de signature. 'filter'expects lambda a un paramètre et retourne booléen. Et vous essayez d'utiliser la méthode sans paramètres – nnesterov