Klassen Deklaration und Initialisierung

Joob

Top Contributor
ich habe verschiedene Klassen für den Datenzugriff und würde gerne über eine Systemvariable entscheiden welche Klasse ich deklariere und iniatlisiere.
Das habe ich über eine if Schleife versucht, geht aber nicht das Java davon ausgeht das etwas in der if Schleife nicht unbedingt ausgeführt wird.

Wie kann ich das steuern :
Java:
if (System.getProperty("DAT").equalsIgnoreCase("LOC")) {
                    DATA_LOC data = new DATA_LOC();
                } else if (System.getProperty("DAT").equalsIgnoreCase("HOS")) {
                    DATA_PHP data = new DATA_PHP();
                } else {
                    DATA_LOC data = new DATA_LOC();
                    JOptionPane.showMessageDialog(null,"DataAccess unbekannt lokale wird verwendet! [Datalock]","Datenzugriff !", JOptionPane.ERROR_MESSAGE);
                }
 
Zuletzt bearbeitet von einem Moderator:
Und es macht eher Sinn die if Abfrage so zu schreiben:

Java:
if("Test".equalsIgnoreCase(.....)){}

So tritt dann auch kein NullPointerException auf. Kommt denn eine Fehlermeldung?
 
Unsinn, das verschleiert nur Fehler und verschlechtert die Lesbarkeit.

Geschmacksache. Verschleiert den Fehler lass ich noch so gelten aber verschlechtert die Lesbarkeit?

Das ist also schlechter zu lesen als:

Java:
if(variable!= null && variable. equalsIgnoreCase("test") ) {}

Aber es ist total legitim meine Schreibweise anzuwende. Und wenn, dann schreibt man den Wert in eine Variable. Sprichwort: Debugging

Es geht aber auch mit Objects.equals. Nicht ohne Grund
 
Zuletzt bearbeitet:
@truesoul und @mrBrown : Könntet ihr diese Grundsatzdiskussion bitte woanders führen?
@Joob Dein wirkliches Problem ist nicht klar erkennbar. Ich vermute mal, dass du mit dem Objekt, was in einer der if-Blöcke initialisiert wird, etwas machen möchtest. Dazu musst du das Objekt VOR den if-Abfragen deklarieren und nach den Abfragen testen, ob es in einer der if-Blöcke initialisiert wurde, also != null ist.
Haben DATA_LOC und DATA_PHP eine gemeinsame Oberklasse?
 
Genauso wie meine Sichtweise. Und die als Unsinn abzutun zeigt mir schon das alles was deiner Sichtweise nicht entspricht Unsinn ist. Von daher ist das Thema für mich gegessen.
Na wenn nicht eine der beiden Varianten Unsinn ist, muss doch deine Aussage, dass die eine sinnvoller ist, Unsinn sein?
Meinem einem Argument hast du ja auch zugestimmt und das andere ignoriert, dann kann ja nicht allzu viel dafür sprechen? 😉
 

Neue Themen


Zurück
Oben