Mark FeatureFlags impl member as final

Marking the member as final for non-test scenarios allows for
optimizations that may otherwise be unavailable, and avoids ambiguity
about mutability.

Bug: 280833463
Test: atest aconfig.test
Change-Id: Ia58a04c9a57ee06d68f4dd022ace5365c65f4cf5
diff --git a/tools/aconfig/aconfig/src/codegen/java.rs b/tools/aconfig/aconfig/src/codegen/java.rs
index 9abc892..0a52914 100644
--- a/tools/aconfig/aconfig/src/codegen/java.rs
+++ b/tools/aconfig/aconfig/src/codegen/java.rs
@@ -473,7 +473,7 @@
                 .unwrap();
         let expect_flags_content = EXPECTED_FLAG_COMMON_CONTENT.to_string()
             + r#"
-            private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
+            private static final FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
         }"#;
 
         let expect_featureflagsimpl_content = r#"
@@ -661,7 +661,7 @@
             public static boolean enabledRoExported() {
                 return FEATURE_FLAGS.enabledRoExported();
             }
-            private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
+            private static final FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
         }
         "#;
 
@@ -1083,7 +1083,7 @@
             public static boolean enabledRw() {
                 return FEATURE_FLAGS.enabledRw();
             }
-            private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
+            private static final FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
         }"#;
 
         let expect_customfeatureflags_content = r#"
diff --git a/tools/aconfig/aconfig/templates/Flags.java.template b/tools/aconfig/aconfig/templates/Flags.java.template
index e2f70b9..2d012f5 100644
--- a/tools/aconfig/aconfig/templates/Flags.java.template
+++ b/tools/aconfig/aconfig/templates/Flags.java.template
@@ -33,8 +33,11 @@
     public static void unsetFeatureFlags() \{
         Flags.FEATURE_FLAGS = null;
     }
-{{ -endif }}
 
-    private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }};
+    private static FeatureFlags FEATURE_FLAGS;
+{{ -else }}
+
+    private static final FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
+{{ -endif }}
 
 }