Ik ben momenteel bezig met een klein projectje voor mezelf. Nu heb ik wel al wat Java ervaring opgedaan, maar er is iets waar ik niet uitkom, misschien ook omdat ik de essentie er van dan niet snap.
Mijn probleem is dat ik meerdere classes heb gemaakt met de implementatie Runnable, waardoor ik die class dus kan Threaden als ik het uit wil voeren. So far so good..
Nu wil ik dus in deze class meerdere methods aanmaken, maar deze zijn dan niet Threadable, of beter gezegd ik krijg ze met geen mogelijkheid Threadable, het enige wat threaded wordt is de method run, lijkt het.
Ik krijg het uiteindelijk wel met een omweg aan de praat, door een nieuwe setter te maken die de naam van een method in een String stopt, en vervolgens via een lullig if-statement uitleest welke method de run moet uitvoeren.
Dit vind ik persoonlijk best smerig, en is niet goed onderhoudbaar, en tevens niet fail-safe, aangezien het een simpele String betreft.
De versimpelde versie van mijn huidige class. Let wel dat dit slechts ter indicatie is, en niet de class in kwestie. Heb dus verschillende dingen geprobeerd, ook extends Thread, maar dit bleek de enige effectieve oplossing.
Graag wil ik dit dus beter doen, maar heb na verscheidene zoekopdrachten in F1 en Google geen bruikbare oplossing langs zien komen. De boeken die ik over Java bezit komen hier ook niet op terug en bieden dus ook geen oplossing.
Is hier een andere (lees: betere) oplossing voor?
Mijn probleem is dat ik meerdere classes heb gemaakt met de implementatie Runnable, waardoor ik die class dus kan Threaden als ik het uit wil voeren. So far so good..
Nu wil ik dus in deze class meerdere methods aanmaken, maar deze zijn dan niet Threadable, of beter gezegd ik krijg ze met geen mogelijkheid Threadable, het enige wat threaded wordt is de method run, lijkt het.
Ik krijg het uiteindelijk wel met een omweg aan de praat, door een nieuwe setter te maken die de naam van een method in een String stopt, en vervolgens via een lullig if-statement uitleest welke method de run moet uitvoeren.
Dit vind ik persoonlijk best smerig, en is niet goed onderhoudbaar, en tevens niet fail-safe, aangezien het een simpele String betreft.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| public class RunClass implements Runnable { private String method; public RunClass() { } public void setMethod(String method) { this.method = method; } public void run() { if(method.equals("TestMethod")) { this.TestMethod(); } else if(method.equals("OtherMethod")) { this.OtherMethod(); } } private void TestMethod() { System.out.println("Test 1"); } private void OtherMethod() { System.out.println("Test 2"); } } |
De versimpelde versie van mijn huidige class. Let wel dat dit slechts ter indicatie is, en niet de class in kwestie. Heb dus verschillende dingen geprobeerd, ook extends Thread, maar dit bleek de enige effectieve oplossing.

Graag wil ik dit dus beter doen, maar heb na verscheidene zoekopdrachten in F1 en Google geen bruikbare oplossing langs zien komen. De boeken die ik over Java bezit komen hier ook niet op terug en bieden dus ook geen oplossing.
Is hier een andere (lees: betere) oplossing voor?
You only need two tools in life: WD-40 and Duct-Tape, if it doesn't move and it should, use the WD-40. If it does move and it shouldn't, use the Tape.