jdk1.8 do this without error
xxx.class.getDeclaredField(“signature”)
but upgrade to jdk21
err:java.lang.NoSuchFieldException: signature
public Class Person{
public static void main(String[] args) throws Throwable {
Field f = Person.class.getDeclaredField("signature");
}
}
jvm ops:
--add-opens
java.base/java.lang=ALL-UNNAMED
--add-opens
java.base/java.lang.reflect=ALL-UNNAMED
--add-opens
java.base/java.lang.invoke=ALL-UNNAMED
--add-opens
java.base/sun.reflect.annotation=ALL-UNNAMED
--add-opens
java.base/java.math=ALL-UNNAMED
--add-opens
java.base/java.util=ALL-UNNAMED
--add-opens
java.base/sun.util.calendar=ALL-UNNAMED
--add-opens
java.base/java.io=ALL-UNNAMED
--add-opens
java.base/java.net=ALL-UNNAMED
--add-opens
java.base/java.nio=ALL-UNNAMED
--add-opens
java.xml/com.sun.org.apache.xerces.internal.jaxp.datatype=ALL-UNNAMED
--add-opens
java.management/sun.management=ALL-UNNAMED
--add-opens
java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
--add-opens
jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED