Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のtry-with-resourcesの事実上最終変数?


リソースを試す内で使用された変数 ステートメントは、試してみる内で宣言する必要があります Java8までのステートメント バージョン。 Java 9以降 この制限は削除され、最終 または事実上最終 変数 Tryブロック内で使用されています。 事実上最終 これは、変数が初期化されると変更できないことを意味します。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class EffectivelyFinalTest {
   private static File file = new File("try_resources.txt");
      public static void main(String args[]) throws IOException {
      file.createNewFile();
      BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

      try(bufferedReader) {
         System.out.println("Can Use Final or Effectively Final in Try with Resources!");
      } finally {
         System.out.println("In finally block");
      }
}
}
出力
Can Use Final or Effectively Final in Try with Resources!
In finally block

  1. Javaの最終変数

    最終変数は明示的に一度だけ初期化できます。 finalとして宣言された参照変数を、別のオブジェクトを参照するように再割り当てすることはできません。 ただし、オブジェクト内のデータは変更できます。したがって、オブジェクトの状態は変更できますが、参照は変更できません。 変数を使用する場合、最終修飾子 多くの場合、定数をクラス変数にするためにstaticとともに使用されます。 例 public class Test {    final int value = 10;    // The following are examples of declaring

  2. Javaの最後のキーワード

    finalは、Java要素の非アクセス修飾子です。 final修飾子は、クラス、メソッド、および変数の実装を確定するために使用されます。 最終変数 最終変数は明示的に一度だけ初期化できます。 finalとして宣言された参照変数を、別のオブジェクトを参照するように再割り当てすることはできません。 ただし、オブジェクト内のデータは変更できます。したがって、オブジェクトの状態は変更できますが、参照は変更できません。 変数の場合、定数をクラス変数にするために、最後の修飾子がstaticとともに使用されることがよくあります。 例 public class Test {    fina