public static void main(String[] args) throws IOException {
String dateiname = null; 🚩
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
dateiname = reader.readLine();
Warum MUSS hier das String-Feld sofort initialisiert werden?
Gelöst
dateinamenur deklarierst, dann wird es wohl einen Codepath geben, der eine Möglichkeit offen läßt, dassdateinamenicht initialisiert ist, wenn du es später ausserhalb der try-Blocks aufrufst. Im konkreten Beispiel (das leider nicht vollständig ist :) ) hast du einen try-Block. Innerhalb diese Blocks wirddateinameinitialisiert. Gibt es allerdings eine Exception in readLine oder in den Konstruktoren, dann istdateinameam Ende des Blocks eben nicht initialisiert. Das könntest du im catch- oder finally- Block heilen und dort deiner Variablen einen Wert zuweisen.