< prev index next >

src/java.base/share/classes/java/lang/reflect/ReflectAccess.java

Print this page

        

@@ -158,9 +158,21 @@
     @SuppressWarnings("unchecked")
     public <T extends AccessibleObject> T getRoot(T obj) {
         return (T) obj.getRoot();
     }
 
+    /*
+     * With a Field object for C.f of type T, T should have been resolved
+     * and T must be present in ValueType attribute.
+     */
+    public boolean isFlattenable(Field f) {
+        return (f.getModifiers() & Modifier.FLATTENABLE) == Modifier.FLATTENABLE;
+    }
+
     public boolean isFlattened(Field f) {
-        return (f.getModifiers() & Modifier.FLATTENED) == Modifier.FLATTENED;
+        return isFlattenable(f) && (f.getModifiers() & Modifier.FLATTENED) == Modifier.FLATTENED;
+    }
+
+    public boolean isNullable(Field f) {
+        return !isFlattenable(f);
     }
 }
< prev index next >