• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Iterator filtrujący - The method is undefined for the type

0 głosów
341 wizyt
pytanie zadane 4 marca 2019 w Java przez Tom_Ja Dyskutant (7,970 p.)
edycja 4 marca 2019 przez Tom_Ja
@SuppressWarnings("hiding")
public interface Predicate <Student> {
     boolean accept(Student stud);   
        }
import java.util.function.Predicate;

public class StudRok implements Predicate <Student> {
    public boolean accept(Student stud) {
        return stud.getRok() == 2;
    }

    @Override
    public boolean test(Student t) {
        return false;
    }
}

W mainie:

@SuppressWarnings("rawtypes")
        Iterator <Student> iterRok = new FilteredIterator(Studenci.iterator(), new StudRok());
        wyswietl(iterRok);

A tu jest błąd:

import java.util.Iterator;
import java.util.function.Predicate;

@SuppressWarnings("hiding")
public final class FilteredIterator<Student> implements Iterator<Student>{

    private Iterator<Student> iterator;
    private Predicate<Student> predicate;

    private Student stud=null;
    private boolean bHasNext=true;

    public FilteredIterator(Iterator<Student> iterator, Predicate<Student> predicate) {
        super();
        this.iterator = iterator; 
        this.predicate = predicate;
        findNextValid();
    }

    @SuppressWarnings("unchecked")
    private void findNextValid() {
        while (iterator.hasNext()) {
            stud = iterator.next();
            if ((predicate).accept(stud)) {
                return;
            }
        }
        bHasNext=false;
        stud=null;
    }

    @Override
    public boolean hasNext() {
        return bHasNext;
    }

    @Override
    public Student next() {
        Student nextValue = stud;
        findNextValid();
        return nextValue;
    }
}

Błąd jest tutaj: if ((predicate).accept(stud)) {

Błąd: The method accept(Student) is undefined for the type Predicate<student>

Co robię źle?

1 odpowiedź

0 głosów
odpowiedź 5 marca 2019 przez Mateusz51 Nałogowiec (28,180 p.)
Masz dokladnie napisane java.util.function.Predicate nie zawiera w sobie metody accept

Podobne pytania

0 głosów
1 odpowiedź 798 wizyt
pytanie zadane 24 października 2018 w Java przez Patryk01 Obywatel (1,270 p.)
0 głosów
3 odpowiedzi 456 wizyt
pytanie zadane 3 marca 2016 w Java przez Kolboch Bywalec (2,320 p.)
0 głosów
1 odpowiedź 373 wizyt

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...