Je mets en œuvre la classe
class PairStringList extends ArrayList<String> {
...
@Override
public <T> T[] toArray(T[] a) {
return super.toArray(a);
}
}
J'ai écrit des tests pour cette classe, et ils utilisent une telle déclaration :
assertArrayEquals(new String[]{}, list.toArray(String[]::new));
Je constate qu'ils utilisent Lambda comme paramètre. Comment puis-je implémenter la méthode toArray() pour exécuter le test correctement ? Maintenant, j'ai la sortie de construction suivante :
pas de méthode appropriée trouvée pour toArray(String[]::new) la méthode Java.util.Collection.toArray(T[]) n'est pas applicable (ne peut pas déduire le(s) type(s) variable(s) T (argument mismatch ; Array n'est pas une interface fonctionnelle))
Comment puis-je résoudre ce problème ?
Remarque : Je ne peux pas modifier le code des tests
Merci à tous ! Le problème a été résolu. Le problème était que les tests étaient écrits en Java 11, mais que j'utilisais Java 8. Après la mise à jour vers Java 11, tout se construit et se compile.