The method append is not applicable for the arguments (Queue<Integer>, Queue<Integer>)

mrStudent

Mitglied
Bei mir wird folgende Fehlermeldung für mein Programm angezeigt.

Es soll das Queue objekt lesen und alle elemente stückweise in ein anderes Queue Objekt einfügen.

Wäre über eine Rückmeldung sehr dankbar, da ich bald eine Klausur in Java schreibe.
 

Anhänge

  • Klausuraufgabe.java
    742 Bytes · Aufrufe: 2

KonradN

Super-Moderator
Mitarbeiter
Code bitte nicht als Datei anfügen sondern über den Knopf </> direkt mit im Beitrag posten.

Dein Problem ist, dass Du in der Methode den Generic T einschränkst: T extends Iterable<T>
Integer ist aber nicht Iterable<T>.

Du hast als Parameter ja Queue<T> - das reicht doch. Da ist egal, was T ist. Es muss also nur das extends Iterable<T> raus, so dass Du:
public static<T> void append(Queue<T> ziel,Queue<T> quelle) {
hast.
 

mrStudent

Mitglied
Code bitte nicht als Datei anfügen sondern über den Knopf </> direkt mit im Beitrag posten.

Dein Problem ist, dass Du in der Methode den Generic T einschränkst: T extends Iterable<T>
Integer ist aber nicht Iterable<T>.

Du hast als Parameter ja Queue<T> - das reicht doch. Da ist egal, was T ist. Es muss also nur das extends Iterable<T> raus, so dass Du:
public static<T> void append(Queue<T> ziel,Queue<T> quelle) {
hast.
Alles klar weiß für das nächste mal Bescheid.

Danke für die verständliche Erklärung👍
 
@mrStudent Könnte es sein, dass eigentlich eher das/Collection gemeint war?:

Java:
    public static <T> Collection<T> alternatingMerge(Collection<T> c1, Collection<T> c2) {
        Collection<T> toRet = new LinkedList<>();
        Queue<T> l1 = new LinkedList<>(c1);
        Queue<T> l2 = new LinkedList<>(c2);
        while (!l1.isEmpty() || !l2.isEmpty()) {
            if (!l1.isEmpty() && !l2.isEmpty()) {
                toRet.add(l1.remove());
                toRet.add(l2.remove());
            } else if (!l1.isEmpty()) {
                toRet.add(l1.remove());
            } else {
                toRet.add(l2.remove());
            }
        }
        return toRet;
    }

    public static void main(String[] args) {
        List<String> l1 = List.of("eins", "zwei", "drei");
        List<String> l2 = List.of("vier", "fünf", "sechs", "sieben", "acht");
        List<String> l3 = (List<String>) alternatingMerge(l1, l2);
        System.out.println("l1 = " + l1);
        System.out.println("l2 = " + l2);
        System.out.println("l3 = " + l3);
    }
 

mrStudent

Mitglied
@mrStudent Könnte es sein, dass eigentlich eher das/Collection gemeint war?:

Java:
    public static <T> Collection<T> alternatingMerge(Collection<T> c1, Collection<T> c2) {
        Collection<T> toRet = new LinkedList<>();
        Queue<T> l1 = new LinkedList<>(c1);
        Queue<T> l2 = new LinkedList<>(c2);
        while (!l1.isEmpty() || !l2.isEmpty()) {
            if (!l1.isEmpty() && !l2.isEmpty()) {
                toRet.add(l1.remove());
                toRet.add(l2.remove());
            } else if (!l1.isEmpty()) {
                toRet.add(l1.remove());
            } else {
                toRet.add(l2.remove());
            }
        }
        return toRet;
    }

    public static void main(String[] args) {
        List<String> l1 = List.of("eins", "zwei", "drei");
        List<String> l2 = List.of("vier", "fünf", "sechs", "sieben", "acht");
        List<String> l3 = (List<String>) alternatingMerge(l1, l2);
        System.out.println("l1 = " + l1);
        System.out.println("l2 = " + l2);
        System.out.println("l3 = " + l3);
    }
@coffeedrinker nein leider nicht, mein Problem wurde jedoch schon von dem @KonradN behoben. Trotzdem vielen Dank..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Final Method Allgemeine Java-Themen 9
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
J Reflection-Method Hook? Allgemeine Java-Themen 14
B Exception in Application init method Allgemeine Java-Themen 5
M Lambda "invalid method reference no suitable method found" Allgemeine Java-Themen 2
Thallius JSONArray - the method length() is undefined for JSONArray Allgemeine Java-Themen 4
N Per Reflection auf (method) local inner class zugreifen? Allgemeine Java-Themen 3
C Method Area, Stack, Heap Allgemeine Java-Themen 7
R Stop a method??? Allgemeine Java-Themen 34
R Merkwürdiges Verhalten der equals Method Allgemeine Java-Themen 4
D Invalid Method declaration Allgemeine Java-Themen 5
N Method-Annotations in aufgerufener Methode auswerten Allgemeine Java-Themen 2
I Template Method pattern mit "geschützten Methoden" Allgemeine Java-Themen 5
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
G JavaDoc: Spezielle Beschreibung nur in Method Detail Allgemeine Java-Themen 5
faetzminator IllegalArgumentException bei Method.invoke() Allgemeine Java-Themen 6
R Fehler:method does not override a method from its superclass Allgemeine Java-Themen 3
G javax.jms.IllegalStateException: This method. Allgemeine Java-Themen 4
K Bound mismatch: The generic method sort(List<T>) of ty Allgemeine Java-Themen 4
G Taushen der Input variablen einer method Allgemeine Java-Themen 14
R The mark method of InputStream does nothing. Allgemeine Java-Themen 4
J httpclient: Post-method aber trotzdem "URI to long&quot Allgemeine Java-Themen 4
G Error: Hashtable Type safety: The method put(Object, Object) Allgemeine Java-Themen 6
J Method.invoke -> Exceptions der Funktion abfangen Allgemeine Java-Themen 5
padde479 The static method sleep(long) from the type Thread should. Allgemeine Java-Themen 2
C Code of a method longer than 65535 bytes Allgemeine Java-Themen 3
K The method clone() from the type Object is not visible. Allgemeine Java-Themen 9
O Pointer/reference on method Allgemeine Java-Themen 10
H2SO3- welcher writer kann fileencoding UND append? Allgemeine Java-Themen 2
G append rückgängig machen Allgemeine Java-Themen 6
R In Textfile schreiben - append Allgemeine Java-Themen 5
F Angeblich Not applicable for Arguments Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben