Mam dwie klasy jedna to TestUser :
public class TestUser {
public static List<User> filterUsers (List<User> users, Predicate<User> predicate) {
return users.stream().filter( predicate ).collect(Collectors.<User>toList());
}
public static Predicate<User> age(String name){
return u -> u.getAge()>0 && u.getName()==name;
}
}
Druga to START:
public class START {
private static Scanner sc;
public static void main(String[] args) {
User u1 = new User("Konrad", 30, true);
User u2 = new User("Janek", 20, false);
User u3 = new User("Konrad", 45, true);
User u4 = new User("Tomasz", 50, false);
User u5 = new User("Michal", 18, true);
List<User> userList = new ArrayList<User>();
userList.add(u1);
userList.add(u2);
userList.add(u3);
userList.add(u4);
userList.add(u5);
sc = new Scanner(System.in);
String next = sc.next();
List<User> filterUsers = filterUsers(userList, age(next));
for(User u:filterUsers){
System.out.println(u.toString());
}
System.out.println("KONIEC");
}
}
Problem polega na tym że metoda filterUsers nie czyta mi zmiennej next. Dostaje pustą tablicę. Jeżeli zamiast next wstawie zmienna w takiej formie - "????" wszystko działa OK.
Co moze byc przyczyna tego że
String next = sc.next();
to pusty String dla metody filterUsers ?