Refactoring von mehreren identischen Klassen

guguli

Bekanntes Mitglied
Hallo zusammen,

Ich brauche eure Hilfe um meinen Codd zu refactorn :)
Also ich habe 3 Packages 2009, 2010 und 2011
die haben jeweils eine service class und eine factory class.
Also Service2009, Service2010 und Service2011 und je eine Factory class, die einfach Factory heißt.

Die factory klassen haben eine getInstance method und eine SetInstance.

Beispielsweise für 2011 sieht die Factory class so aus:

Code:
public final class Factory {

   private static EService<K2011DTO> instance;

   private Factory() {}
   
   public static void setInstance(final EService<K2011DTO> instance) {
       Factory.instance = instance;
   }

   public static EService<K2011DTO> getInstance() {
       if (instance != null) {
           return instance;
       } else {
           return new Service2011();
       }
   }
}
für weitere Jahren ändert sich einfach der generische Type K2011DTO und die Service2011 class entsprechend des Packages.

Desweiteren gibt es 3 andere Packages jahr2009, jahr2010 und jahr2011
Die haben je eine Gebe und eine Hole klasses.
Diese klassen benutzen die getInstance methode der factory classes.
Beispielweise für Gebe classs 2011 sieht das so aus:

Code:
public final class Gebe2011 implements Processor {

   @Override
   public void process(final MainDTO request, final MainDTO response, final BearbeiterContext bearbeiterContext,
           final FachContext fachContext) {

       EService<K2011DTO> service = Factory.getInstance();
       K2011DTO kDTO = DatenProcessor.REQUEST_HELPER.gebeRequestToDto(request,
               K2011DTO.class);
       service.gebe(fachContext, kDTO, request.getNachrichten());

   }
}

Die EService ist eine Interface, welche so aussieht:

Code:
public interface EService<DTO> extends KService<DTO> {
}
nun möchte ich die Factory class so refactorn, dass nur einmal für alle Jahren existiert und nicht für jedes Jahr einmal.

Ich hoffe ich habe mich verständlich ausgedrückt.
 

mihe7

Top Contributor
Du könntest z. B. den Service unter einem Namen bei der Factory registrieren und dort die Services in einer Map speichern.
 

mihe7

Top Contributor
Im Moment schlecht, bin unterwegs. An irgendeiner Stelle registrierst Du aktuell ja die Instanz Deines Services. Dort änderst Du den Aufruf z.B. zu
Java:
Factory.setInstance("2011", service); // wobei service == this sein könnte
Und in der Factory hast Du halt eine Map<String, EService> o.ä.
 

guguli

Bekanntes Mitglied
Ich habe nachgeschaut, die setInstance Methode wird gar nicht benutzt, sie ist nur für testfälle da. Also getInstance() schaut ob eine Instance existiert wenn nicht dann erzeut ein Objekt der entsprechenden Klasse.

Also ich dachte irgendwie mit generic und Class und untypisierter Parameter T würde das gehen.
Also der getInstance() methode einen Übergabeparameter geben.

Wisst ihr wie ich das meine?
 

mrBrown

Super-Moderator
Mitarbeiter
Spricht denn irgendwas gegen die Lösung von @mihe7?

Den String kannst du gegen jedes andere Objekt ersetzen, wenn dir der nicht passt. Das initialisieren der Objekte kannst du im Konstruktor oder auch im statischen Initializer machen, wenns static sein muss.
 

guguli

Bekanntes Mitglied
Spricht denn irgendwas gegen die Lösung von @mihe7?

das Problem ist dass setInstance niergendwo aufgerufen wird. Sie wurde nur fürs Testen geschrieben. Also ich uss nur mit getInstace() arbeiten.

also hier wird getInstance aufgerufen:
Code:
EService<K2011DTO> service = Factory.getInstance();
also das muss so abgändert werden sodass zu dieser Implementierung passen wird:
Code:
public class Factory<T> {
   private EService<T> instance;
   private Factory() {}
   public <T> EService<T> getInstance(Class<T> jahr) {
       if (instance != null) {
           return (EService<T>) instance;
       } else {
           return new Service2013();
       }
   }

Also static wäre mir lieber. Also wenn es auch static gehen würde dann wäre supper.

DIe implementierung von der klasse Factory ist natürlich nicht so ganz korrekt. Muss noch auch angepasst werden
 

mrBrown

Super-Moderator
Mitarbeiter
Das setInstance kannst im statische Initializer der Factory aufrufen, wenn es nicht direkt in getInstance möglich ist.

Wenn du die Klasse übergibst, kannst du die Instanz auch in getInstance erzeugen. Nutzt du irgendein DI-Framework?
 

mihe7

Top Contributor
Irgendwie verstehe ich den Sinn dieser Factory nicht ganz. Du übergibst eine Klasse und willst von der Factory eine Instanz haben. Injected die Factory irgendwas? Ansonsten kannst Du ja gleich new verwenden.

EDIT: ach, ich sehe gerade: Du übergibst den Typ-Parameter.
 

mihe7

Top Contributor
Eine hartkodierte, statische Variante mit allen Klassen zu Demonstrationszwecken:
Java:
import java.util.*;
import java.util.function.Supplier;

public class Factory {
    public static interface Service<T> { void run(); }

    static class Service2012 implements Service<String> {
        public void run() { System.out.println("2012"); }
    }

    static class Service2013 implements Service<Integer> {
        public void run() { System.out.println(123); }
    }

    private static Map<Class, Supplier<Service>> suppliers = new HashMap<>();

    static {
        suppliers.put(String.class, () -> new Service2012());
        suppliers.put(Integer.class, () -> new Service2013());
    }

    @SuppressWarnings("unchecked")
    public static <T> Service<T> newInstance(Class<T> clazz) {
        Supplier<Service> supplier = suppliers.get(clazz);
        if (supplier != null) {
            return supplier.get();
        }
        return null;
    }

    public static void main(String[] args) {
        Service<String> service1 = Factory.newInstance(String.class);
        Service<Integer> service2 = Factory.newInstance(Integer.class);
        Service<String> service3 = Factory.newInstance(String.class);
        service1.run();
        service2.run();
        System.out.println(service1 == service3);
    }
}
In diesem Beispiel werden neue Instanzen der jeweiligen Serviceklasse erzeugt.
 

mrBrown

Super-Moderator
Mitarbeiter
Oder alternativ CDI, wenn du sowieso JavaEE nutzt.
Wenn du eh die gewünschte Klasse übergibst, kannst du mit CDI.current().select(clazz).get() eine Instanz bekommen. Scope etc dann direkt an der Klasse mit Annotationen steuern
 

guguli

Bekanntes Mitglied
Ich hab das wie folgt angepasst:

so rufe ich die methode getInstance auf aus der entsprechenden klassen
Code:
EService<2010DTO> kService = Factory.getInstance(2010DTO.class);
Code:
EService<2013DTO> kService = Factory.getInstance(2013DTO.class);
...
[/CODE]
und das ist meien Factory Klasse
Code:
public class Factory {

   @SuppressWarnings("rawtypes")
   private static Map<Class, Supplier<EService>> suppliers = new HashMap<>();

   private Factory() {
   }

   static {
       suppliers.put(2009DTO.class, () -> new Service2009());
       suppliers.put(2010DTO.class, () -> new Service2010());
       suppliers.put(2012DTO.class, () -> new Service2012());
       suppliers.put(2013DTO.class, () -> new Service2013());
       suppliers.put(2015DTO.class, () -> new Service2015());
       suppliers.put(2017DTO.class, () -> new Service2017());
       suppliers.put(2019DTO.class, () -> new Service2019());

   }

   @SuppressWarnings({ "unchecked", "rawtypes" })
   public static <T> EService<T> getInstance(Class<T> dto) {

       Supplier<EService> supplier = suppliers.get(dto);

       if (supplier != null) {
           return supplier.get();
       }
       return null;

   }
}

Aber eine Sache stört mich noch. Dass am ender noch
Code:
retrun null
zurückgegenwerden kann.
Wie kann ich das ambesten abfangen?
 

mihe7

Top Contributor
Kannst du mir aber diesen Teil mal erklären?
Statische Initialisierung oder meinst Du die Lambdas (also den Part mit "() ->")?

Ein Lamda ist eine anonyme Funktion. Im konkreten Fall kannst Du Dir () -> new Service2009() als Kurzschreibweise für
Java:
new Supplier<Service>() {
    @Override
    public Service get() {
        return new Service2009();
    }
};
vorstellen.

Wie kann ich das ambesten abfangen?
Neben den von @mrBrown genannten Möglichkeiten kannst Du natürlich auch einen Standardwert zurückgeben.

Ich muss nochmal darauf hinweisen, dass mit newInstance() jedesmal ein neuer Service erstellt wird. Wenn Du das nicht willst, müsstest Du die Instanzen cachen.
 

mihe7

Top Contributor
Naja, dass Objekte erzeugt werden, ist der Grund, warum es Factory heißt :)

Wie Du das cached? Du baust noch etwa folgendes ein:
Java:
private static Map<Class, Service> instances = new HashMap<>();

public static <T> EService<T> cached(Class<T> dto) {
    return instances.computeIfAbsent(dto, getInstance(dto));
}
und verwendest dann die Methode (sprich: Du benennst die vorhandene getInstance-Methode in newInstance um und diese Methode in getInstance)

EDIT: musst noch casten, hab ich vergessen.
 

guguli

Bekanntes Mitglied
ok, hab ich gemacht. Aber ws passiert wenn die Instace schon existiert, dann müsste ich theoretisch ja die instance zurückgeben, aber hier return nur wenn nicht existiert.

Code:
@SuppressWarnings({ "unchecked" })
   public static <T> EService<T> getInstance(Class<T> dto) {
       return (EService<T>) instances.computeIfAbsent(dto, newInstance(dto));
       

   }
   
   @SuppressWarnings({ "rawtypes", "unchecked" })
   private static <T> Function<? super Class, ? extends Supplier<EService>> newInstance(Class<T> dto) {
       Supplier<EService> instance = instances.get(dto);

       if (instance != null) {
           return (Function<? super Class, ? extends Supplier<EService>>) instance.get();
       }
       return null;
   }
 

mihe7

Top Contributor
Ja, das steht unten bei returns: "the current (existing or computed) value associated with the specified key, or null if the computed value is null"

EDIT: und weiter oben auch nochmal. "The default implementation is equivalent to the following steps for this map, then returning the current value or null if now absent:"
 

guguli

Bekanntes Mitglied
Ja habe ich übersehen :)

Ich versuche noch gleichzeitig einen Junit test zu schreiben.
Meine Überlegung ist eine Objekt der Klasse z.B. 2013DTO zu erzeugen dann dieses an getInstance(dto) übergeben.der Rückgabewert ist ja vom typ EStGService<T>,
aber wie kann ich denn das Testen. mit assertTrue und dann instanceOf irgendwie?
ALso irgendwie so:
Code:
   Factory factory;
   Service2013 service2013;

   @Before
   public void setUp() {
     factory = new Factory();
       service2013 = new Service2013();
   }

   @After
   public void tearDown() {
       Factory = null;
       service2013= null;
   }

   @Test
   public void getInstance2013Test() {
       
       assertTrue(service2013 instanceOf ...)
   }

das geht nicht ich kann da factory nicht mehr benutzen. Ich wprde gerne sowas schreiben:
Code:
  assertTrue(service2013 instanceOf factory.getInstacne(2013DTO.class));
Oder ist mein Ansatz komplett falsch?
 

guguli

Bekanntes Mitglied
das kann ich jetzt testen:
Code:
@Test
   public void getInstance2013Test() {
       EService<2013DTO>  dto = factory.getInstance(2013DTO.class);
       
       assertTrue(dto instanceof Service2013);
   }

bekomme aber eine ClassCastException:
java.lang.ClassCastException: de.test.Service2013 cannot be cast to java.util.function.Function

aus dieser zeile:
Code:
if (instance != null) {
           return (Function<? super Class, ? extends Supplier<EService>>) instance.get();
       }
 

guguli

Bekanntes Mitglied
Wo ist die Zeile her? Der Cast ist natürlich falsch.
in der newInstance methode
Code:
@SuppressWarnings({ "unchecked" })
   public static <T> EService<T> getInstance(Class<T> dto) {
       return (EService<T>) instances.computeIfAbsent(dto, newInstance(dto));
       

   }
   
   @SuppressWarnings({ "rawtypes", "unchecked" })
   private static <T> Function<? super Class, ? extends Supplier<EService>> newInstance(Class<T> dto) {
       Supplier<EService> instance = instances.get(dto);

       if (instance != null) {
           return (Function<? super Class, ? extends Supplier<EService>>) instance.get();
       }
       return null;
   }
 

mihe7

Top Contributor
Schau Dir nochmal meinen Code aus Kommentar #11 an. Für newInstance brauchst eine Map von Class auf Supplier<EService>. Der Supplier erzeugt die betreffende EService-Instanz, sobald get() (des Suppliers) aufgerufen wird. Für getInstance brauchst Du zusätzlich eine Map von Class auf EService.

Der Rückgabetyp ist bei beiden Methoden einfach ein EService.
 

guguli

Bekanntes Mitglied
Eigentlich finde ich das was ich geschrieben haben klingt logisch aber die Methode computeIfAbsent() braucht als 2. Argument eine Function<>.
Das ist die kommplette Klasse:
Code:
public class Factory {

   @SuppressWarnings("rawtypes")
   private static Map<Class, Supplier<EService>> instances = new HashMap<>();

   public Factory() {
   }

   static {
       instances.put(2009DTO.class, () -> new Service2009());
       instances.put(2010DTO.class, () -> new Service2010());
       instances.put(2012DTO.class, () -> new Service2012());
       instances.put(2013DTO.class, () -> new Service2013());
       instances.put(2015DTO.class, () -> new Service2015());
       instances.put(2017DTO.class, () -> new Service2017());
       instances.put(2019DTO.class, () -> new Service2019());

   }

   
   @SuppressWarnings({ "unchecked" })
   public static <T> EService<T> getInstance(Class<T> dto) {
       return (EService<T>) instances.computeIfAbsent(dto, newInstance(dto));
       

   }
   
   @SuppressWarnings({ "rawtypes", "unchecked" })
   private static <T> EService<T> newInstance(Class<T> dto) {
       Supplier<EService> instance = instances.get(dto);

       if (instance != null) {
           return instance.get();
       }
       return null;
   }
}
in static{} wird ja gemappt. und in newInstance wird ja mit get() die instanze geholt. aber wie gesagt die Methode computeIfAbsent brucht als 2. Argument eine Function<>.
Für getInstance brauchst Du zusätzlich eine Map von Class auf EService.
Versthe nicht was du damit meinst.
 

mihe7

Top Contributor
Eigentlich finde ich das was ich geschrieben haben klingt logisch
Naja, Dein Rückgabetyp wäre eine Function gewesen, die eine Class auf einen Supplier abbildet. Die Funktion würde also das Problem lösen, das mit der Methode gelöst werden soll. Da beißt sich der Hund in den Schwanz.

Versthe nicht was du damit meinst.
Lassen wir die Generics mal weg, dann wird es vielleicht deutlicher.
Java:
Map<Class,Supplier> suppliers;
Map<Class,EService> instances;
Deine Supplier erzeugen Objekte. D. h. ich kann mir aus der Map einen Supplier ziehen und mir dann vom Supplier ein neues Objekt erstellen lassen, das in Deinem Fall das EService-Interface implementiert. Das ist es, was die newInstance-Methode macht (darum auch das new im Namen der Methode).

Du willst aber je Class höchstens eine EService-Instanz erzeugen. Deswegen musst Du die von newInstance erzeugte EService-Instanz irgendwo cachen. Das machst Du hier einfach über die zweite Map instances.

Die Methode getInstance schaut nun einfach im Cache (das ist die Map instances) nach, ob schon eine EService-Instanz erzeugt wurde. Falls ja, wird diese zurückgegeben, falls nein wird mittels newInstance eine neue Instanz erzeugt, im Cache abgelegt und dann zurückgegeben.
 

guguli

Bekanntes Mitglied
Ich glaub ich habe das verstanden :)
Code:
public class Factory {

   @SuppressWarnings("rawtypes")
   private static Map<Class, Supplier<EService>> suppliers = new HashMap<>();
   @SuppressWarnings("rawtypes")
   private static Map<Class, EService> instances = new HashMap<>();

   public Factory() {
   }

   static {
       suppliers.put(2009DTO.class, () -> new Service2009());
       suppliers.put(2010DTO.class, () -> new Service2010());
       suppliers.put(2012DTO.class, () -> new Service2012());
       suppliers.put(2013DTO.class, () -> new Service2013());
       suppliers.put(2015DTO.class, () -> new Service2015());
       suppliers.put(2017DTO.class, () -> new Service2017());
       suppliers.put(2019DTO.class, () -> new Service2019());

   }

   
   @SuppressWarnings({ "unchecked" })
   public static <T> EService<T> getInstance(Class<T> dto) {
       return (EService<T>) instances.computeIfAbsent(dto, k -> newInstance(dto));
       

   }
   
   @SuppressWarnings({ "rawtypes", "unchecked" })
   private static <T> EService<T> newInstance(Class<T> dto) {
       Supplier<EService> instance = suppliers.get(dto);

       if (instance != null) {
           return instance.get();
       }
       return null;
   }
}
das ist mein JUnit test, es sieht eigentlich korrekt aus oder?

Code:
public class FactoryTest {

   Factory factory;
   Service2013 service2013;

   @Before
   public void setUp() {
       factory = new Factory();
       service2013 = new Service2013();
   }

   @After
   public void tearDown() {
       factory = null;
   }

   @SuppressWarnings("static-access")
   @Test
   public void getInstance2013Test() {
       EService<2013DTO>  dto = Factory.getInstance(2013DTO.class);
       assertTrue(dto instanceof Service2013);
   }
}
 

mihe7

Top Contributor
Noch was: entweder ich habe etwas verpasst oder die Bezeichner Deiner DTO-Klassen dürften gar nicht erlaubt sein, weil sie mit einer Ziffer beginnen.
 

mihe7

Top Contributor
Java:
import java.util.HashMap;
import java.util.Map;
import java.util.function.Supplier;

public abstract class Factory {

   private static Map<Class<?>, Supplier<EService<?>>> suppliers = new HashMap<>();
   private static Map<Class<?>, EService<?>> instances = new HashMap<>();

   static {
       suppliers.put(DTO2009.class, () -> new Service2009());
       suppliers.put(DTO2010.class, () -> new Service2010());
       suppliers.put(DTO2011.class, () -> new Service2011());
   }

   
   @SuppressWarnings("unchecked")
   public static <T> EService<T> getInstance(Class<T> dto) {
       return (EService<T>) instances.computeIfAbsent(dto, k -> newInstance(dto));      
   }
   
   @SuppressWarnings("unchecked")
   private static <T> EService<T> newInstance(Class<T> dto) {
       Supplier<EService<?>> instance = suppliers.get(dto);

       if (instance != null) {
           return (EService<T>)instance.get();
       }
       return null;
   }
}
 

mihe7

Top Contributor
Noch ein paar Worte zu Deinem Test:
Java:
public void getInstance2013Test() {
       EService<2013DTO>  dto = Factory.getInstance(2013DTO.class);
       assertTrue(dto instanceof Service2013);
}

Die Bezeichnung der Variable dto ist "falsch" - Du bekommst einen Service, kein DTO.

Dein Test ist nicht vollständig. Es wird erwartet, dass getInstance
a) null liefert, falls für die angegebene DTO-Klasse kein Service registriert ist,
b) nicht null liefert, falls für die angegebene DTO-Klasse ein Service registriert ist,
c) auch bei mehrmaligem Aufruf mit der selben DTO-Klasse immer die selbe Referenz liefert

Analog gilt dies für newInstance, wobei sich die Factory bei c) genau andersrum verhält: dort wird bei mehrmaligem Aufruf jeweils eine andere Referenz erwartet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
G refactoring mit stream Java Basics - Anfänger-Themen 27
U Refactoring Java Basics - Anfänger-Themen 4
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
freudianslip if-Statement mit mehreren Zahlenwerten Java Basics - Anfänger-Themen 4
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
B Funktion mit mehreren Rückgabewerten aka Prozeduren? Java Basics - Anfänger-Themen 12
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
O compareTo nach mehreren Kriterien Java Basics - Anfänger-Themen 13
B Java Mail: suchen von mehreren Emailadressen Java Basics - Anfänger-Themen 5
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
K Geburtsdaten von Mehreren Personen speichern und Alter ausgeben Java Basics - Anfänger-Themen 11
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
E if-Bedingung mit mehreren Möglichkeiten ? Java Basics - Anfänger-Themen 6
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
A String mit mehreren Zeilen splitten Java Basics - Anfänger-Themen 4
U Schleife mit mehreren Bedingungen ? Java Basics - Anfänger-Themen 29
C OOP Von mehreren Klassen aus auf das selbe Objekt zugreifen Java Basics - Anfänger-Themen 8
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
B Variable in mehreren Klassen nutzen Java Basics - Anfänger-Themen 4
D Eine MySQL Verbindung in mehreren Klassen Java Basics - Anfänger-Themen 8
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
S OOP Variablen zwischen mehreren Klassen Java Basics - Anfänger-Themen 11
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
R Eine Datei mit mehreren Zeilen beschreiben Java Basics - Anfänger-Themen 5
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
H Klassen Auf eine Hashtable aus mehreren Klassen zugreifen Java Basics - Anfänger-Themen 12
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
R Objekt erstellen - Attribute mit mehreren Werten Java Basics - Anfänger-Themen 1
F Selben Code in mehreren Projekten Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
M JUnit Testmethoden mit mehreren assert Methoden Java Basics - Anfänger-Themen 1
G Klassen Problem mit mehreren Klassen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
kaoZ Input/Output Einlesen von mehreren Zeilen Java Basics - Anfänger-Themen 4
T Variablen Zufallsgenerator mit mehreren Variablen Java Basics - Anfänger-Themen 3
Devil0s Entwicklung mit mehreren Leuten Java Basics - Anfänger-Themen 7
3 JLabel - Text in mehreren Zeilen zentrieren Java Basics - Anfänger-Themen 5
R Compiler-Fehler Auf selben Array in mehreren "cases" vom "Switch" zugreifen Java Basics - Anfänger-Themen 11
K Vererbung Methoden in klassen auslagern und in mehreren Klassen verfügbar machen Java Basics - Anfänger-Themen 8
D Eine Variable in mehreren "switch" Java Basics - Anfänger-Themen 24
P Liste in einer Klasse füllen und mehreren anderen Klassen lesend verwenden Java Basics - Anfänger-Themen 5
propra Objekte in mehreren Listen Java Basics - Anfänger-Themen 6
T GUI Prog. mit mehreren Klassen Java Basics - Anfänger-Themen 4
K Erste Schritte Eingabetext besteht aus mehreren Zeilen? Java Basics - Anfänger-Themen 3
D javac zum Kompilieren von mehreren Dateien Java Basics - Anfänger-Themen 6
P Auslesen von mehreren XML Dateien - Fehler Java Basics - Anfänger-Themen 11
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
T List mit mehreren gleichen Strings bereinigen Java Basics - Anfänger-Themen 4
firefexx Input/Output close() bei mehreren Streams Java Basics - Anfänger-Themen 5
L Server mit mehreren Clients Java Basics - Anfänger-Themen 25
C Methoden Methoden mit mehreren Rückgabewerten Java Basics - Anfänger-Themen 11
D OOP Objekt in mehreren Objekten Java Basics - Anfänger-Themen 3
T Hashmap mit mehreren Werten Java Basics - Anfänger-Themen 9
M Backslash aus mehreren einen machen? Java Basics - Anfänger-Themen 7
M Frame mit mehreren areas Java Basics - Anfänger-Themen 14
P Wie mehreren Threads Aufgaben zuweisen und abarbeiten lassen? Java Basics - Anfänger-Themen 15
Dit_ Aktualisieren von mehreren Views Java Basics - Anfänger-Themen 2
S Datentypen In mehreren Dateien Strings ersetzen Java Basics - Anfänger-Themen 14
B Swing Applikation mit mehreren Klassen Java Basics - Anfänger-Themen 2
J Matheaufgabe aus String mit mehreren Operatoren Java Basics - Anfänger-Themen 16
Q If-Abfrage mit mehreren Bedingungen Java Basics - Anfänger-Themen 6
D Datentypen Aufzählunsdatentyp in mehreren Klassen verwenden? Java Basics - Anfänger-Themen 10
U Umsetzungsfrage: Personen mit mehreren "Rollen" Java Basics - Anfänger-Themen 9
D Datentypen Liste mit Objekten aus mehreren Klassen Java Basics - Anfänger-Themen 3
P Doppelte Einträge in mehreren Textfiles finden und ausgeben Java Basics - Anfänger-Themen 8
M String mit mehreren Zahlen in Integer-Array Java Basics - Anfänger-Themen 2
S Infos aus mehreren JVMS verbinden Java Basics - Anfänger-Themen 3
ModellbahnerTT Klassen in mehreren Projekten benutzten Java Basics - Anfänger-Themen 3
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
B Identifikation eines einzelnen Buttons aus mehreren Buttons per Schleife erzeugten Java Basics - Anfänger-Themen 4
M property mit mehreren werten Java Basics - Anfänger-Themen 3
H Vergleichen mit mehreren Textdateien Java Basics - Anfänger-Themen 2
X Konfiguration einer Anwendung aus mehreren Dateien Java Basics - Anfänger-Themen 11
K Rekusion bei Bäumen mit mehreren Blättern Java Basics - Anfänger-Themen 7
G Sortieren von mehreren klassen Java Basics - Anfänger-Themen 7
-horn- EINE setter/getter klasse aus mehreren klassen befüllen Java Basics - Anfänger-Themen 13
G art hashmap mit mehreren werten pro key Java Basics - Anfänger-Themen 2
L Zeit stoppen in mehreren Threads Java Basics - Anfänger-Themen 2
C Programm mit mehreren Dateien Java Basics - Anfänger-Themen 2
G [Threads]: Mit mehreren Threads 1 ArrayList durchlaufen Java Basics - Anfänger-Themen 19
V Screenshot von mehreren Monitoren machen Java Basics - Anfänger-Themen 6
F aus mehreren Programmen ein Programm mit Threads machen Java Basics - Anfänger-Themen 7
S equals( mit mehreren möglichkeiten) Java Basics - Anfänger-Themen 18
P JTree mit mehreren Wurzeln Java Basics - Anfänger-Themen 2
B Kürzesten Weg zwischen mehreren Punkten finden (rekursiv) Java Basics - Anfänger-Themen 5
H Ein Hauptprogramm mit mehreren Fenstern . Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben