Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

neido

Treue Seele

  • »neido« ist der Autor dieses Themas

Beiträge: 225

Wohnort: Wien

  • Private Nachricht senden

1

06.08.2015, 11:45

Java Generics Verwirrung

Hallo!

Aufgrund einer Anregung, die ich gestern hier im Forum erhalten habe, habe ich begonnen, Generics in mein Programm einzubauen, wo ich im Grunde aber noch nicht sehr erfahren bin. Jetzt habe ich folgenden Code produziert:

Quellcode

1
2
3
4
5
6
7
public abstract class Condition<A extends Linkable, P extends Linkable> {
    public abstract boolean check(A activePartner, P passivePartner);
    
    public void shouldWork(Linkable a, Linkable p){     
        check(a,p);
    }
}


jetzt gibt es aber einen Compilerfehler:
The method check(A, P) in the type Condition<A,P> is not applicable for the arguments (Linkable, Linkable)

A und P sind aber Linkables, da die Generics A und P die Klasse Linkable extenden. Ich habe jetzt schon ein paar Artikel über Generics gelesen aber ich verstehe immer noch nicht, was ich hier falsch mache. Bitte helft mir ich bin super verwirrt ?(

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

06.08.2015, 12:18

Gib uns erstmal mehr Code.
Wo ist die check Methode deklariert? Wo und wie sieht der Aufruf aus? Wie sind deine Objekte initialisiert, bzw. erbst du aus Linkable und übergibst die?

neido

Treue Seele

  • »neido« ist der Autor dieses Themas

Beiträge: 225

Wohnort: Wien

  • Private Nachricht senden

3

06.08.2015, 12:25

Der Compilerfehler kommt bei der Zeile mit dem check(a,p). Beim Eclipse ist das wort check rot unterwellt und wenn man mit der maus darüberfährt kommt eben diese Fehlermeldung

Es gibt nur diesen code, ich bin noch gar nicht zum Aufrufen oder initialisieren gekommen, da der compilerfehler schon in dieser abstrakten Klassendefinition kommt. Linkable ist eine andere abstrakte Klasse, aber das sollte ja in diesem Beispiel keinen Unterschied machen, oder?...

Tobiking

1x Rätselkönig

  • Private Nachricht senden

4

06.08.2015, 12:35

A und P sind aber Linkables

Linkables sind aber keine As und keine Ps. Deine check Methode erwartet A und P, da passt kein Linkable.

neido

Treue Seele

  • »neido« ist der Autor dieses Themas

Beiträge: 225

Wohnort: Wien

  • Private Nachricht senden

5

06.08.2015, 13:04

A und P sind aber Linkables

Linkables sind aber keine As und keine Ps. Deine check Methode erwartet A und P, da passt kein Linkable.
Ah klar jetzt check ich meinen Fehler :dash: A ist einfach ne Subklasse von Linkable, nicht durch die Generics verwirren lassen...
Danke Leute!

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

6

06.08.2015, 13:29

Jau hab ich auch nicht gesehen.
Ich hatte aber nach den check() Methode gefragt, das wäre evt. schon relevant gewesen^^
Aber ist ja geklärt.

Werbeanzeige