Fehlermeldung ArrayList add

Pr0m3theus

Mitglied
Hallo liebe Java-Gemeinde,

ich lerne seit einigen Monaten Java und erziele m.E. ganz gute Fortschritte. Ich bin bei der eigenen Problemrecherche im Internet schon öfters auf dieses Forum aufmerksam geworden; nun endlich habe ich mich angemeldet - und das gleich mit einem mich sehr beschäftigenden Problemfall.

Es geht um die Rückgabe einer ArrayList. Die Methode funktioniert soweit - bis auf einen Fall. Am besten ich poste zunächst einmal die Implementierung der Methode:
Java:
 public ArrayList sucheNachrichtVon(){
     
        ArrayList<NachrichtenEinsendung> nachrichtenVon = new ArrayList<>();
     
        for(Einsendung sV : einsendungen){
            if(sV instanceof NachrichtenEinsendung){
             
                nachrichtenVon.add(sV);
            }
         
         
        }
     
     
        return nachrichtenVon;
     
    }


Als Fehlermeldung erhalte ich "no suitable method found for add(Einsendung) und blueJ zeigt mir bei nachrichtenVon.add(sV) das "add" rot an.

Eigentlich ist doch alles logisch: Die for-Schleife prüft alle Objekte einer Sammlung (ArrayList mit Namen "einsendungen") darauf, ob Sie vom Typ "NachrichtenEinsendung" sind (einer vererbten Klasse) und in diesem Falle (if), soll das entsprechende Objekt gleich in die in der Methode deklarierten neuen ArrayList eingefügt werden: nachrichten.add(sV)

Syntaktisch alles korrekt. Über eine Hilfe wäre ich sehr dankbar.

Es grüßt Euch alle
Pr0meth3us
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
sV ist bei dir vom Typ Einsendung, deine ArrayList erwartet aber NachrichtenEinsendung. instanceof allein reicht nicht, damit der Compiler weiß, dass es der passende Typ ist, du musst es danach auch noch casten ;)
 

Pr0m3theus

Mitglied
Danke für die Antwort!
Habe das Problem verstanden. :)
Mit dem Casten stoße ich aktuell an meine Grenzen. Wie müsste das im Code aussehen?
 

mrBrown

Super-Moderator
Mitarbeiter
Zum Casten gibt man einfach in Klammer den Typ, in den gecasted werden soll, vor dem zu castendem Object/Wert an.
In deinem Fall also nachrichtenVon.add((NachrichtenEinsendung) sV);
 

Jardcore

Top Contributor
Vielleicht ist das was du eher wolltest? :)
Java:
public List<Einsendung> sucheNachrichtVon() {
        final List<Einsendung> nachrichtVon = new ArrayList<>();
     
        for(Einsendung sV : einsendungen) {
            if(sV instanceof NachrichtenEinsendung) {
                nachrichtVon.add(sV);
            }
        }
     
        return nachrichtVon;
    }
Damit kannst du dir den Cast sparen, da NachrichtenEinsendung eh vom Typ Einsendung ist.
Problem hier ist nur, das du beim späteren Iterieren nicht auf die speziellen Methoden zugreifen kannst, ohne dann zu casten.

Vielleicht ist es hilfreicher für dich, wenn du uns deine Idee hinter dem ganzen erläuterst und wir unsere Ideen beisteuern.

Um dich jetzt vollkommen zu verwirren, aber vielleicht brauchst du das später Mal, kannst du statt den oberen Code auch folgenden Benutzen:
Java:
public List<Einsendung> sucheNachrichtVon() {
        return einsendungen.stream().filter(sV -> sV instanceof NachrichtenEinsendung).collect(Collectors.toList());
    }
 

Thallius

Top Contributor
Es ist schon schlechter Stil, dass er in einer eigentlich komplett gekapselten Methode auf eine Instanzvariable zugreift. Warum übergibt er nicht einsendungen einfach als Parameter?
 

Pr0m3theus

Mitglied
Vielleicht ist das was du eher wolltest? :)

Vielleicht ist es hilfreicher für dich, wenn du uns deine Idee hinter dem ganzen erläuterst und wir unsere Ideen beisteuern.

Vielen Dank für das Angebot. Ein praktisches Ziel steckt aber nicht hinter meinem Code. Mir ging es einfach nur darum zu testen, wie man bei einem Schleifensuchlauf einer Sammlung (bestehend aus Objekten einer Superklasse und entsprechenden Subklassen) nur die Ergebnisse einer bestimmten Subklasse ausgibt. Beispiel Netzwerk: Es gibt mehrere Typen eines Beitrags (Textnachricht, Bild, Weiterleitung/ Empfehlung, News) - und der Nutzer kann auswählen: Zeige nur Textnachrichten :)

Viele Grüße
Pr0m3theus
 

Jardcore

Top Contributor
Wie Harry sagte Enums könnten da helfen.
Java:
public enum MessageTyp {
    TEXTNACHRICHT,
    BILD,
    WEITERLEITUNG_EMPFEHLUNG,
    NEWS
}
Java:
public class Einsendung {
    private MessageTyp messageTyp;

    public MessageTyp getMessageTyp() {
        return messageTyp;
    }
}

Deine Einsendung hat dadurch einen Typen nach dem gefiltert werden kann.
Java:
public List<Einsendung> getEinsendungenOfMessageTyp(final List<Einsendung> einsendungen, final MessageTyp messageTyp) {
    final List<Einsendung> einsendungenOfSpecificMessageTyp = new ArrayList<>();

    for(final Einsendung e : einsendungen) {
        if(e.getMessageTyp == messageTyp) {
            einsendungenOfSpecificMessageTyp.add(e);
        }
    }
    return einsendungenOfSpecificMessageTyp;
}
Nach Unterklassen zu filtern ist eher unüblich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ronny123 Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 1
F Fehlermeldung in Eclipse Java Basics - Anfänger-Themen 13
AllBlack Fehlermeldung Java Basics - Anfänger-Themen 19
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
Ostkreuz Fehlermeldung Java Basics - Anfänger-Themen 1
_so_far_away_ Fehlermeldung "Index 2 out of bounds for length 2" Java Basics - Anfänger-Themen 7
W Texteingabe - Bedeutung Fehlermeldung, Lösung? Java Basics - Anfänger-Themen 18
krgewb Fehlermeldung in web.xml Java Basics - Anfänger-Themen 4
W Warum diese Fehlermeldung? Java Basics - Anfänger-Themen 12
nbergmann Unverständliche Fehlermeldung Java Basics - Anfänger-Themen 56
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
J Fehlermeldung im Checkstyle Java Basics - Anfänger-Themen 11
S Fehlermeldung Java Basics - Anfänger-Themen 7
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
C Fehlermeldung Array zuweisen und printen Java Basics - Anfänger-Themen 22
J Fehlermeldung Java Basics - Anfänger-Themen 22
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
C Fehlermeldung InOut. Java Basics - Anfänger-Themen 7
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
A Fehlermeldung Java Basics - Anfänger-Themen 5
H Comparator Fehlermeldung Java Basics - Anfänger-Themen 5
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
M Java heap space Fehlermeldung beheben Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
H fehlermeldung Java Basics - Anfänger-Themen 447
H fehlermeldung Java Basics - Anfänger-Themen 9
T Fehlermeldung beim Starten von FlashTool Java Basics - Anfänger-Themen 27
C Fehlermeldung mit Intger. Java Basics - Anfänger-Themen 3
A Fehlermeldung Java Basics - Anfänger-Themen 3
D Wie kann man eine solche Fehlermeldung abfangen Java Basics - Anfänger-Themen 4
H Fehlermeldung bei der Ausführung eines Compilierten PRGs Java Basics - Anfänger-Themen 9
N Fehlermeldung beim ausführen des Programmes.. Java Basics - Anfänger-Themen 3
x-tshainge Fehlermeldung Java Basics - Anfänger-Themen 2
M Erste Schritte NetBeans Fehlermeldung Java Basics - Anfänger-Themen 2
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
N Fehlermeldung bei Methode Java Basics - Anfänger-Themen 12
I String index out of range Fehlermeldung Java Basics - Anfänger-Themen 4
I Fehlermeldung bei Darstellung von Arrays Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
A checkstyle Fehlermeldung Java Basics - Anfänger-Themen 1
G Compiler-Fehler Fehlermeldung Java Basics - Anfänger-Themen 3
Arabicabohne Fehlermeldung bei Eclipse Java Basics - Anfänger-Themen 23
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
TheMenox Fehlermeldung / Arrays, Enhanced For Loops Java Basics - Anfänger-Themen 16
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
Henri Fehlermeldung Java Basics - Anfänger-Themen 2
K Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 2
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
J Bug? Seltsame Fehlermeldung Java Basics - Anfänger-Themen 7
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
L Fehlermeldung Java Basics - Anfänger-Themen 6
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
J Launcher Fehlermeldung Java Basics - Anfänger-Themen 0
A Fehlermeldung Unklar, google hilft auch nicht weiter Java Basics - Anfänger-Themen 2
H Compiler-Fehler Fehlermeldung Kompilier Java Basics - Anfänger-Themen 4
A Fehlermeldung Unklar. Java Basics - Anfänger-Themen 1
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
D Fehlermeldung beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 4
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
D Fehlermeldung "com.element.JavaUpload.Manager" Java Basics - Anfänger-Themen 1
S Fehlermeldung bei format methode Java Basics - Anfänger-Themen 1
A Compiler-Fehler Fehlermeldung auf Mac Java Basics - Anfänger-Themen 3
K JDBC - Wie ist Fehlermeldung zu interpretieren Java Basics - Anfänger-Themen 3
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
N Fehlermeldung nicht nachvollziehbar Java Basics - Anfänger-Themen 5
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
C addActionListener(this) - Fehlermeldung Java Basics - Anfänger-Themen 8
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
G Variablen Warum bekomme ich da eine Fehlermeldung? Java Basics - Anfänger-Themen 3
C GUI - SWT - Button-Fehlermeldung Java Basics - Anfänger-Themen 5
F Input/Output IOTools Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 16
K Erste Schritte Datei gelöscht - nun Fehlermeldung Java Basics - Anfänger-Themen 2
S Fehlermeldung Java Basics - Anfänger-Themen 8
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
E Fehlermeldung Java Basics - Anfänger-Themen 13
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
J Fehlermeldung reagieren Java Basics - Anfänger-Themen 10
F Array Fehlermeldung... Java Basics - Anfänger-Themen 2
B Fehlermeldung bei Klasse mit array Java Basics - Anfänger-Themen 3
L Erste Schritte Fehlermeldung bei Array-Programm Java Basics - Anfänger-Themen 4
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
Gugelhupf JDK installieren Fehlermeldung 1336 - Java SDK 7 Update 5 x64 Java Basics - Anfänger-Themen 4
K Fehlermeldung nach editor installation Java Basics - Anfänger-Themen 3
P Input/Output JOptionPane Fehlermeldung Catchen Java Basics - Anfänger-Themen 5
J Erste Schritte System.out.print (Fehlermeldung) Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben