NetBeans "Type Parameter is not within its bounds"

smartin

Mitglied
Hallo zusammen,

als absoluter Frischling in Sachen NetBeans habe ich das Buch "Netbeans Platform 6" von Heiko Böck gelesen und wollte dann das Beispiel aus dem Buch nachbauen.

Dort wird zuerst ein Filetyp mp3 angelegt inkl. DataLoader, DataObject und DataNode. In einem anderen Modul soll dann eine Liste von Mp3s abgespielt werden mit folgender Methode:
Java:
    public void play(ListIterator<Mp3DataObject> mp3s) {
       ...
        }
    }

Allerdings bekomme ich bereits bei dieser Zeile die Fehlermeldung aus dem Betreff. Die Methode funktioniert einwandfrei im Modul des Mp3DataObjects.
Ich habe im FileType Modul alle Packages Public gemacht und im anderen Modul die Dependencies gesetzt. Der Import funkioniert auch wunderbar, nur bekomme ich eben immer diesen Fehler.

Hat jemand eine Idee was das sein könnte?

Grüße,
Martin
 
die Fehlermeldung ergibt keinen Sinn wenn du nicht gerade eine eigene Klasse ListIterator implementiert und dort die möglichen generischen Parameter eingeschränkt hast,
funktioniert bei dir folgendes Test-Programm?, alles in eine Java-Datei:

Java:
import java.util.ListIterator;
public class Test {
    public static void main(String[] args) {
        System.out.println("ende");
    }

    public void play(ListIterator<Mp3DataObject2> mp3s)   {
    }
}

class Mp3DataObject2 {
}
ausführen musst du es nicht mal, nur kompilieren?
und mit ListIterator<Mp3DataObject> dann nicht mehr?
Fehlermeldung doch anders?, Screenshot?
 
Zuletzt bearbeitet von einem Moderator:
Es ist genau wie du sagst. Mit deinem Code funktioniert es, wenn ich aber Mp3DataObject einsetze kommt die Fehlermeldung. Hab 2 Screenshots angehängt...
 

Anhänge

  • Mp3DataObjectKlasse.jpg
    Mp3DataObjectKlasse.jpg
    51,8 KB · Aufrufe: 36
  • TestKlasse.jpg
    TestKlasse.jpg
    52,2 KB · Aufrufe: 35
ich hab noch nicht wirklich eine Idee, verrückter Fehler,
kannst du in der Testklasse eine normale Variable vom Typ Mp3DataObject definieren? und ein Objekt einer neuen generischen Klasse?
hier alles vorerst mit Mp3DataObject2 :
Java:
public class Test {
    public static void main(String[] args)  {
        Mp3DataObject2 x = null;
        Y<Mp3DataObject2> y = null;
        System.out.println("ende");
    }

    public void play(ListIterator<Mp3DataObject2> mp3s) { }
}

class Y<T> { }
class Mp3DataObject2 { }
hast du andere Klassen im fraglichen package, geht es mit denen oder geht es nicht?
definiere ein neues dummy-package im Projekt, geht es mit einer Klasse von dort?
definiere Mp3DataObject2 oder 3 als neue Klasse im package von Mp3DataObject, falls möglich, wird das in Test dann angenommen?

ist es Zufall dass im Screenshot der Mp3DataObject-Klasse keine package-Angabe zu sehen ist?
 
Ich glaube wir kommen der Sache näher 😉

Es ging tatsächlich mit den anderen Klassen aus dem Package auch nicht.
Wenn ich im gleichen Modul wie Mp3DataObject ein neues Package mit neuer Klasse Mp3DataObject3 anlege, funktioniert es.
Habe gerade auch festgestellt, dass ich nicht auf die Methoden eines Mp3DataObject zugreifen konnte, bei Mp3DataObject3 allerdings schon.

Es muss also irgendwas mit dem package zu tun haben, denke ich...

Zu deiner letzten Frage: Man kann das Package auf dem Screenshot nicht sehen, aber es lautet
Java:
package org.ms.mp3manager.filetype;

Würdest du die Klassen jetzt einfach in ein neues Package verschieben, oder hast du eine Idee an was es liegen könnte?
 
wenn du alles als Quellcode vorliegen hast dann ginge das technisch, sofern nicht weitere Libraries benötigt werden und die meckern,
und ja ich würde dies machen bevor gar nichts geht,
ob, wie und warum das package gesperrt ist kann ich nicht genauer beurteilen
 
Hast du denn schonmal in den Optionen des Moduls mit dem Filetype geschaut, ob das Package überhaupt als Public Package definiert ist? Also
Code:
Rechtsklick -> Properties -> API Versioning
und da halt unter Public Packages.
 
Konnte das Problem immer noch nicht wirklich lösen. Ursprünglich habe ich die IDE auf meinem Mac installiert, jetzt unter Windows gleiches Tutorial -->keine Problem...
 

Zurück
Oben