Guten Abend liebe Foren Gemeinde,
zu Anfang möchte ich mich entschuldigen, falls ich in den falschen Thread schreibe. Dennnoch habe ich mich vorher nach der Lösung erkundet (sowohl in diesem Forum, als auch via. Google), habe aber keine für mich passende Lösung gefunden.
Nun zu meinem Problem:
Ich habe insgesamt 3 Klassen in einem Paket. Nur eine Klasse (Hauptklasse) kann von Außerhalb genutzt werden alle anderen nicht.
FiLo-Klasse:
ConfigurationFile-Klasse:
Die Listen (List<String> path & fileExtensions (in der Klasse FiLo)) sollen auch von der anderen Klasse verfügbar sein. So wie der Code jetzt aussieht, wirft der Compiler eine NullPointerException.
Ich hatte das vorher schon mit "getter'n" und "setter'n" probiert, da hat man allerdings das Problem, dass ich mehrer Objekte habe (da noch eine weiter Klasse vorhanden ist), und diese dann unterschiedliche Werte haben.
Wie löst man das Problem am besten? (Mit Vererbung?)
Freundliche Grüße
Florian
P.S. sorry, für den langen Post
zu Anfang möchte ich mich entschuldigen, falls ich in den falschen Thread schreibe. Dennnoch habe ich mich vorher nach der Lösung erkundet (sowohl in diesem Forum, als auch via. Google), habe aber keine für mich passende Lösung gefunden.
Nun zu meinem Problem:
Ich habe insgesamt 3 Klassen in einem Paket. Nur eine Klasse (Hauptklasse) kann von Außerhalb genutzt werden alle anderen nicht.
FiLo-Klasse:
Java:
public class FiLo {
private char mode;
private boolean noUI;
private static List<String> paths;
private static List<String> fileExtensions;
public FiLo(String configFile) {
new ConfigurationFile(configFile);
}
public FiLo(char mode, boolean noUI, List<String> paths, List<String> fileExtensions) {
paths = new ArrayList<>();
fileExtensions = new ArrayList<>();
this.mode = mode;
this.noUI = noUI;
this.paths = paths;
this.fileExtensions = fileExtensions;
}
char getMode() {
return mode;
}
void setMode(char mode) {
this.mode = mode;
}
static List<String> getPaths() {
return paths;
}
static void setPaths(List<String> paths) {
FiLo.paths = paths;
}
static List<String> getFileExtensions() {
return fileExtensions;
}
static void setFileExtensions(List<String> fileExtensions) {
FiLo.fileExtensions = fileExtensions;
}
public void start() {
new FilesAndDirectories();
}
ConfigurationFile-Klasse:
Java:
class ConfigurationFile{
ConfigurationFile(String configFilePath) {
Path configFile = Paths.get(configFilePath);
try(BufferedReader reader = Files.newBufferedReader(configFile)) {
String line;
int i = 0;
while((line = reader.readLine()) != null) {
if(!(line.startsWith("#"))) {
if(line.startsWith("*")) {
if(i == FiLo.getPaths().size()) { i = 0; }
line = line.replace("*", "");
FiLo.getFileExtensions().add(i, line);
} else {
FiLo.getPaths().add(i, line);
}
i++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ich hatte das vorher schon mit "getter'n" und "setter'n" probiert, da hat man allerdings das Problem, dass ich mehrer Objekte habe (da noch eine weiter Klasse vorhanden ist), und diese dann unterschiedliche Werte haben.
Wie löst man das Problem am besten? (Mit Vererbung?)
Freundliche Grüße
Florian
P.S. sorry, für den langen Post