try-mit-Ressourcen auf null-Ressourcen

Das immer zum Abschluss eines try-mit-Ressourcen-Blocks ein close() aufgerufen wird ist nicht ganz korrekt; es gibt nur dann ein Schließversuch, wenn die Ressource ungleich null ist.

Beispiel

Der Codebaustein compiliert und führt zu einer Konsolenausgabe.

try ( Scanner scanner1 = null; Scanner scanner2 = null ) {

  System.out.println( "Ok" );

}

Bei Konstruktoren ist ein Objekt ja immer gegeben, aber es gibt auch Fabrikaufrufe, bei denen vielleicht null herauskommen kann, und für diese Fälle ist es ganz praktisch, dass try-mit-Ressourcen dann nichts macht, um eine NullPointerException beim close() zu vermeiden.

Über Christian Ullenboom

Ich bin Christian Ullenboom und Autor der Bücher ›Java ist auch eine Insel. Einführung, Ausbildung, Praxis‹ und ›Java SE 8 Standard-Bibliothek. Das Handbuch für Java-Entwickler‹. Seit 1997 berate ich Unternehmen im Einsatz von Java. Sun ernannte mich 2005 zum ›Java-Champion‹.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.