Kann Methode nicht aus Klassenname implements Runnable nutzen

Colonel

Mitglied
Hallo!

Ich programmiere nach dem MVC-Model.

Im Model instanziere ich eine Klasse namens RequestThread. Diese wird in einem Thread ausgeführt.
Java:
package MailSlave;

import java.io.*;

public class Model {
    Runnable ReqLogic = new RequestThread();
    Thread ReqThread = new Thread(ReqLogic);

public void M_StartServer()
    {
        ReqThread.start();        
    }

    public void M_StopServer()
    {
       ReqLogic.setRunFlag(false);    //NetBeans sagt mir, dass es diese Methode nicht gibt
    }
}

Die Klasse RequestThread sieht so aus:

Java:
package MailSlave;

public class RequestThread implements Runnable{

    public boolean runFlag = false;

    public void setRunFlag(boolean runFlag)
    {
        this.runFlag = runFlag;
    }

    public boolean getRunFlag()
    {
        return this.runFlag;
    }

    public void run()
    {
        while( runFlag == true )
        {
            System.out.println(runFlag + "\n");
        }
    }

}


Wieso kann ich die Methode setRunFlag und getRunFlag nicht ansteuern? Jede andere Methode wie getName ist möglich, nur nicht die selbstgeschriebenen Methoden.


Gruß vom Colonel
 

Atze

Top Contributor
zu laufzeit würds die sogar geben, aber der compiler kennt nur das Runnable, und findet die methode nicht

wwarum machst du das

Runnable ReqLogic = new RequestThread();

nicht so

RequestThread ReqLogic = new RequestThread();

?
 

Colonel

Mitglied
Wieviel bekommst du denn für diese simple, aber folgenreiche Antwort? :D

Funktioniert bestens und ich versteh nicht wieso das im Tutorial so falsch ausgewiesen dasteht. Das Beispiel dort kann doch dann garnicht funktionieren. Oder?
 

eRaaaa

Top Contributor
Also eig. ist es schon schöner gegen das Interface zu programmieren!
Wenn du dann Methoden aus deiner eigenen Klasse nutzen möchtest, hättest du immer noch die Möglichkeit auf diese Klasse zu casten!

Normal steuerst du doch auch eig. eher den Thread und nicht das Runnable oder?

Also so was wie while(!isInterrupted()) ist doch extra dafür da?!
 
Zuletzt bearbeitet:

Atze

Top Contributor
ok, oder wie eRaaaa sagt halt so

Runnable ReqLogic = new RequestThread();
((RequestThread)ReqLogic).methode();

aber wenn er das interface nicht brauch, spart er sich das casten.
 

eRaaaa

Top Contributor
Was ich eig. sagen wollte ist, dass das ganze mit den Flags doch eig. unnötig ist und man daher diese Methoden gar nicht braucht.
In dem Artikel vom TO geposteten Link steht:
http://www.boku.ac.at/javaeinf/jein2.html#thread hat gesagt.:
Es gibt auch Methoden stop(), interrupt(), suspend() und resume() für das Beenden, Abbrechen oder Unterbrechen eines Thread. Die Verwendung dieser Methoden wird jedoch nicht empfohlen ("deprecated" ab JDK 1.2), weil es dabei entweder zu Deadlock-Situationen oder zu unvollständig ausgeführten Aktionen und damit zu ungültigen Objekt- oder Datenzuständen kommen kann.

Das stimmt im Falle interrupt() aber leider so nicht imo.
Wie so häufig verweise ich mal auf die Insel:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 11.3 Die Zustände eines Threads
 

Atze

Top Contributor
stimmt, aber über den sinn der methoden habe ich garnicht nachgedacht, das design ist ja seine sache :)
hatte mich jetzt nur auf sein problem fokussiert :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
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
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Split() Methode funktioniert nicht?! Allgemeine Java-Themen 11
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
snipesss Methode greift nicht auf JTextPanel zu Allgemeine Java-Themen 3
M Eigene forEach()-Methode funktioniert nicht. Allgemeine Java-Themen 2
S Methode funktioniert nicht als ActionListener Allgemeine Java-Themen 4
P OSGi - Bundle-Methode wird nicht aufgerufen Allgemeine Java-Themen 3
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
I HashMap key wird nicht erkannt trotz überschriebener equals/hashCode Methode Allgemeine Java-Themen 6
L repaint() methode funktioniert nicht richtig! Allgemeine Java-Themen 3
B Methode läuft nicht unter UNIX Allgemeine Java-Themen 6
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
P Methode keyPressed() reagiert nicht im Browser Allgemeine Java-Themen 6
J ActionListener-Klasse will Methode nicht annehmen Allgemeine Java-Themen 6
G Swing Timer führt Methode nicht aus Allgemeine Java-Themen 2
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
G Aufruf einer Methode wenn Klasse noch nicht existiert Allgemeine Java-Themen 3
G Methode akzeptiert List<ParentClass> aber nicht List&l Allgemeine Java-Themen 2
J Methode nicht ausführbar in main Allgemeine Java-Themen 7
P meine selectAll methode makiert text nicht? Allgemeine Java-Themen 9
M clone-methode nicht verfügbar Allgemeine Java-Themen 10
W put() Methode der BlcokingQueue funktioniert nicht Allgemeine Java-Themen 16
F Evtl. nicht vorhandene Methode aufrufen Allgemeine Java-Themen 3
S Statische Methode oder nicht? Allgemeine Java-Themen 5
T in einer statischen Methode ein nicht statische Aufrufen Allgemeine Java-Themen 5
D Statische, generische Methode will nicht. Allgemeine Java-Themen 2
G Lesbare args für die main-Methode Allgemeine Java-Themen 6
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
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
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
T Sinn einer toString Methode Allgemeine Java-Themen 3
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
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
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
KaffeeFan Methoden Suche Methode um Programm kurz warten zu lassen Allgemeine Java-Themen 22

Ähnliche Java Themen

Neue Themen


Oben