put() Methode der BlcokingQueue funktioniert nicht

Status
Nicht offen für weitere Antworten.

Warhead

Mitglied
Hallo zusammen,
um es vorweg zu nehemen, ich programmiere unter WinXP, mit dem jdk1.5.0_03 und Eclipse.
Ich arbeite mich gerade durch das Tutorial über Threads auf java.sun.com.
Nachdem man dort eine eigene Struktur gewerkelt hat, um Daten synkronisiert ziwschen zwei Threads auszutauschen, wird nun die BlockingQueue aus java.util.concurrent eingeführt, die exakt diese Aufgabe übernehmen soll
java.sun.com/docs/books/tutorial/essential/threads/datastructures.html
Allerdings funktioneriert die in dem Beispiel benutzte put() methode nicht, Eclipse sagt mir: The method put(Object) in the type BlockingQueue is not applicable for the arguments (int).
Ich habe mir selber einen Consumer gebaut, aber auch die take() Methode, die ich dort verwende, schlägt fehl:
Type mismatch: cannot convert from Object to int
Ich sehe gerade den Fehler nicht, aber ich halte es für unwahrscheinlich, daß die Jungs von Sun so einen Fehler in ihrer Doku haben. Stimmt vielleicht mit meiner Installation, oder mit Eclipse etwas nicht?

Hier der Quellcode, meiner beiden Klassen:

Producer:
Code:
import java.util.concurrent.*;

public class Producer extends Thread {
	private BlockingQueue cubbyhole;
	private int number;
	
	public Producer(BlockingQueue c, int num) {
		cubbyhole = c;
		number = num;
	}
	
	public void run() {
		for (int i = 0; i < 10; i++) {
			try {
				cubbyhole.put(i);
				System.out.println("Producer" + number + "put:" + i);
				sleep((int)(Math.random()*100));
			} catch (InterruptedException e) {
			}
		}
	}
}

Consumer:
Code:
import java.util.concurrent.*;

public class Consumer extends Thread {
	private BlockingQueue cubbyhole;
	private int number;
	
	public Consumer(BlockingQueue c, int num) {
		cubbyhole = c;
		number = num;
	}
	
	public void run() {
		int value = 0;
		//String bla = null;
		try {
			for (int i = 0; i < 10; i++) {
				value = cubbyhole.take();
				System.out.println("Consumer" + number + "got: " + value);
			}
		} catch (InterruptedException e) {
		}
	}
}
Jede Idee ist mir wilkommen.

Gruß
Kolja
 

messi

Bekanntes Mitglied
Nun, die "Jungs von Sun" benutzen Auto-boxing. Das geht nur mit Java 1.5 und Eclipse 3.1. Ich habe gerade Auto-boxing in Eclipse deaktiviert und benutze immer explizit new Integer(int) und Integer.intValue().
 

Warhead

Mitglied
Würde ich gerne sofort ausprobieren, ob mir das hilft. Ich finde nur gerade nirgends, wie ich Eclipse das Auto-Boxing untersage.

Gruß
Kolja
 

messi

Bekanntes Mitglied
Dein Problem hat nichts mit aktiviertem Auto-boxing zu tun. Ganz im Gegenteil. Hast du überhaupt Eclipse 3.1?
 

Warhead

Mitglied
Stimmt, habe ich nicht...hab 3.0.2
Aber wieso hast Du bom Auto-Boxing geredet, wenn es mit meinem Problem nichts zu tun hat? Ich bin verwirrt...

Gruß
Kolja
 

Warhead

Mitglied
Ich bin nicht der JAVA-König, ich hab nur recht wenig Ahnung davon. Heißt das jetzt, das ist ein Bug, oder muß ich meine Quellcodes ändern?
Ich habe noch immer nicht genau das Problem verstanden...

Gruß
Kolja
 
R

Roar

Gast
das ist kein bug. du hast eine veraltet version von eclipse die noch keine Java 5 features kann, deshalb kann dein code nicht kompiliert werden. lad dir entweder die neueste eclipse version runter oder benutze die Wrapperklasse Integer
 

Bleiglanz

Gesperrter Benutzer
oder verzichte auf eclipse und kompilier von Hand, sollte doch bei so einfachen beispielen kein Problem sein

is eh besser, wenn du ein bisschen den umgang mit der konsole lernst

(dein Problem ist eigentlich, dass Eclipse einen eigenen Compiler mitbringt und nicht das javac aus deinem jdk verwendet...)
 

Warhead

Mitglied
Ich habe jetzt nach Stunden endlich die neue Eclipse Version herunterladen können. Ich habe immer noch das selbe Problem. Wie erkläre ich Eclipse dieses Auto-Boxing zu benutzen?
Nebenbei: Ich muß schon etwas mehr mit JAVA machen, als dieses Beispiel. Wenn ich unter Windows überhauptkeine Entwicklingsumgebung nutzen kann und alles aus nem Editor und der Eingabeaufforderung bauen muß, werde ich wahnsinnig.

Gruß
Kolja
 

Bleiglanz

Gesperrter Benutzer
schau dich mal hier im forum um wieviele anfänger nicht in der lage sind, ausserhalb der IDE was zu machen...

UND

schau dich mal hier im forum um wieviele hanseln nicht verstanden haben, wie der classpath funktioniert

UND

dann wär eben der Fehler schneller aufgefallen...
 

Warhead

Mitglied
Ich benutze jetzt die Wrapper Klassen, dann ist auch mein JAVA-Kompiler zufrieden. Ich weiß immer nich nicht genau, was Auto Boxing tut, finde weder hier im Forum noch im Index von Eclipse etwas darüber. Mir ist aufgefallen, daß ich jetzt auch die Wrapper Klassen benutzen muß, wenn ich int's oder sowas in einen Vector legen oder herausnehmen will. Ich sehe immer noch nicht, was das Auto Boxing jetzt einfacher macht, für mich macht es den Quellcode komplizierter und sorgt dafür, daß ich ältere Sourcen an den neuen Kompiler anpassen muß. Aber wie gesagt, das liegt vielleicht an mir, weil ich das Konzept einfach nich blicke im Moment.
Auf jeden Fall kann ich mein Beispiel jetzt kompilieren und ausführen, auch wenn es so vermutlich fieses gehacke ist was ich mache.

Gruß
Kolja
 

Warhead

Mitglied
Tja, ich bin immer noch nicht so wirklich schlauer.
Mit dem Autoboxing sollen also das ganze Umschubsen von int nach Integer, etc. und zurück wegfallen. Man soll als Programmierer nicht mehr seinene Sourcen damit zumüllen, zitat:
The result of all this magic is that you can largely ignore the distinction between int and Integer, with a few caveats.
Dann mache ich irgendwas falsch, ich muß sehr genau zwischen int und Integer unterscheiden, sonst haut mein Kompiler mir das nämlich um die Ohren. Viele Beispiele (nicht nur Autoboxing, sondern z.B. auch die enums) funktionieren einfach nicht, und ich kann das suchen, ob Eclipse zu dumm ist das zu verstehen, oder ob der Fehler bei mir liegt. Das macht die Sache dann wirklich nicht einfacher. Wenn die einzige noch vernünftige Entwicklungsumgebung nun auch aufgiebt, obwohl sie die neuen Konzepte von JAVA 5 jetzt angeblich alle kann, macht JAVA wirklich keinen Spaß mehr, obwohl ich mir das eigentlich nicht denken kann. Aber ich finde einfach keine Lösung dafür, sehe nicht, was mein Fehler ist. Ich werde dieses Projekt wohl doch aus der Konsole zuende bauen müssen. Trotzdem Danke.

Gruß
Kolja
 

messi

Bekanntes Mitglied
Warhead hat gesagt.:
Wenn die einzige noch vernünftige Entwicklungsumgebung nun auch aufgiebt, obwohl sie die neuen Konzepte von JAVA 5 jetzt angeblich alle kann, macht JAVA wirklich keinen Spaß mehr, obwohl ich mir das eigentlich nicht denken kann.
Es wurde schon mehrmals gesagt, daß du Eclipse 3.1 benutzen mußt. Hast du dir das inzwischen installiert?
 
B

Beni

Gast
Und überprüf, ob unter "Window > Preferences > Java > Compiler" auch überall 5.0 (oder 1.5) aktiviert ist (und nicht 1.4).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Hilfe bei Methode Allgemeine Java-Themen 14
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
Simon16 compareTo Methode überschreiben Allgemeine Java-Themen 4
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
M CrudRepository save Methode mocken Allgemeine Java-Themen 6
thor_norsk toString() - Methode Allgemeine Java-Themen 6
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
Encera Zweite Main-Methode zuschalten Allgemeine Java-Themen 18
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
E Methoden abstract static Methode Allgemeine Java-Themen 8
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
B In Java Methode mit generic input und output basteln? Allgemeine Java-Themen 4
goldmensch Datentypen Welche Methode hat die bessere Performance? Allgemeine Java-Themen 12
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
T C++ Methode Übersetzung in Java Allgemeine Java-Themen 3
L Erste Schritte TDD testen einer Methode mit injezierten Services? Allgemeine Java-Themen 12
R @author vor Methode (eclipse) Allgemeine Java-Themen 1
J RotSchwarzBaum: Löschen mittels insert-Methode Allgemeine Java-Themen 20
Y Java Bruttoberechnen + runden Methode Allgemeine Java-Themen 1
R Warum ist die Methode unendlich oft rekursiv? Allgemeine Java-Themen 5
R Methoden Was fehlt mir bzw. muss ich bei der Methode countHarshabNumbers ändern damit ich die Harshad Zahlen im Intervall [51, 79] zählen kann? Allgemeine Java-Themen 19
D ArrayListe delete Methode klappt nicht Allgemeine Java-Themen 12
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
A Ist ein enum hier richtig? Enum toString() Methode. Allgemeine Java-Themen 1
Scream_ilias brute force methode verbessern? Allgemeine Java-Themen 6
Scream_ilias passwort meines pc per brute force methode knacken Allgemeine Java-Themen 4
S static methode im Interface Allgemeine Java-Themen 1
M Konstruktor einer Methode Allgemeine Java-Themen 35
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Sinn einer toString Methode Allgemeine Java-Themen 3
T Split() Methode funktioniert nicht?! Allgemeine Java-Themen 11
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
L ToString-Methode Allgemeine Java-Themen 6
X Datentypen NPE in längerer Methode Allgemeine Java-Themen 12
I Methoden Generics-Methode Allgemeine Java-Themen 3
H Strategy Pattern - changeColor() Methode - input rgd oder hex einlesen Allgemeine Java-Themen 1
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
F Was ist der Dateityp meines Parameters für die Main Methode. Allgemeine Java-Themen 6
F Variablen Palindromzahl (Probleme mit Methode) Allgemeine Java-Themen 9
B APi methode kurz anhalten Allgemeine Java-Themen 8
P Methode aus anderem Paket aufrufen Allgemeine Java-Themen 1
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
R Rekursive Methode Allgemeine Java-Themen 8
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
M Methoden Generische Methode für ArrayList Allgemeine Java-Themen 7
D HTTP Aufruf einer Methode aus einem Servlet heraus Allgemeine Java-Themen 0
C Threads Methode verhält sich merkwürdig Allgemeine Java-Themen 18
R rekursive und iterative Methode Allgemeine Java-Themen 3
P Methoden Anwendung der allMatch()-Methode Allgemeine Java-Themen 5
G Programm, das nach abgearbeiteter main Methode weiterläuft Allgemeine Java-Themen 72
D Methoden Methode zum Steinschnitt Allgemeine Java-Themen 2
U OOP Warum kann ich aus meiner Methode keinen String auslesen Allgemeine Java-Themen 4
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
D Returnwert aus einer Methode gerundet ausgeben lassen Allgemeine Java-Themen 2
S equals-Methode bestimmer Klassen abfangen Allgemeine Java-Themen 2
H Methoden Methode 'updateItem' der Klasse 'TreeCell' Allgemeine Java-Themen 3
snipesss Methode greift nicht auf JTextPanel zu Allgemeine Java-Themen 3
R Methode in Methode voraussetzen Allgemeine Java-Themen 8
S Überschriebene Methode der Oberklasse der Oberklasse aufrufen. Allgemeine Java-Themen 5
D Methode dynamisch aufrufen Allgemeine Java-Themen 2
Sogomn Methode als Parameter? Allgemeine Java-Themen 3
M Eigene forEach()-Methode funktioniert nicht. Allgemeine Java-Themen 2
KaffeeFan Methoden Suche Methode um Programm kurz warten zu lassen Allgemeine Java-Themen 22
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
BRoll Methode abbrechen (Invoke von außen) Allgemeine Java-Themen 5
I Methode verallgemeinern (Methode als Parameter)? Allgemeine Java-Themen 10
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
G Threads Methode nebenbei ausführen, Status verarbeiten Allgemeine Java-Themen 4
H FTP Befehl/Java Methode für Submit im z/Os (Host) Allgemeine Java-Themen 1
M Fabrik Methode, gutes Beispiel? Allgemeine Java-Themen 0
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
N WaitForScript- methode in javafx Allgemeine Java-Themen 1
2 jede Stunde Methode ausführen Allgemeine Java-Themen 8
M Eine static-Methode verlassen Allgemeine Java-Themen 2
P "Overriden statische Methode" Statische Methode die vererbt wird Allgemeine Java-Themen 5
X Komponente an Methode übergeben Allgemeine Java-Themen 1
A Methode ergibt Java NullpointerException. Allgemeine Java-Themen 3
S Getestete Methode um das Beste aus URL-Nutzereingaben rauszuholen..? Allgemeine Java-Themen 4
L Methoden Methode gibt mir beim verschlüsseln mit RSA 0 bytes aus ? Allgemeine Java-Themen 1
D Methode mit optionalen Parametern in Interface Allgemeine Java-Themen 3
C DBConnection als Methode in mehreren Klassen Allgemeine Java-Themen 4
S Methode funktioniert nicht als ActionListener Allgemeine Java-Themen 4
M Methoden Methode Auslagern Allgemeine Java-Themen 6
P 4 Threads in einer Methode Allgemeine Java-Themen 2
A Methoden Generische Methode mit Arrays - Source Compatibility 1.7 benötigt, wieso? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben