WinFuture-Forum.de: Java: 2 Threads Programmieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Java: 2 Threads Programmieren Multithreading in Java

#16 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 14. November 2006 - 19:38

FooBar.java:5: non-static variable this cannot be referenced from a static context
private final static Runnable demothread1=new DemoThread(1);
										  ^
1 error

Wenn man DemoThread statisch deklariert klappt es hervorragend. :blink:

Wie gesagt, da es sich um eine nested class handelt, kannst du nicht ohne "von außen" auf sie zugreifen.

Du kannst das aber etwas umschreiben, in dem du das mit einer Get-Methode kapselst. So in etwa:

public DemoThread getDemoThread(int nr) {
	return new DemoThread(nr);
}


So verzichtest du auf deine statischen Methoden.

Können wir uns darauf einigen? ;)
import static java.lang.System.out;

public final class FooBar {

	final class DemoThread implements Runnable {
	
		private final String threadname;

		private DemoThread(final int nr) {
			threadname = "Thread #" + nr + ": ";
		}

		public void run() {
			for(int i = 0; i < 101; i++)
				out.println(threadname + i);
		}
	}
	
	public DemoThread getDemoThread(int nr) {
		return new DemoThread(nr);
	}

	public static void main(final String[] args) {
		FooBar fb = new FooBar();
		Thread thread1 = new Thread(fb.getDemoThread(1));
		Thread thread2 = new Thread(fb.getDemoThread(2));
		thread1.start();
		thread2.start();
	}
}

0

Anzeige



#17 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 14. November 2006 - 19:51

Ich braucht echt Schlaf. :(

import static java.lang.System.out;

public final class DemoThread implements Runnable {

	private final String threadname;

	DemoThread(final int nr) {
		threadname = "Thread #" + nr + ": ";
	}

	public void run() {
		for(int i = 0; i++ < 101; out.println(threadname + i);
	}
	
	public static void main(final String[] args) {
		Thread thread1 = new Thread(new DemoThread(1));
		Thread thread2 = new Thread(new DemoThread(2));
		thread1.start();
		thread2.start();
	}
}

Dieser Beitrag wurde von Rika bearbeitet: 14. November 2006 - 19:53

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0