Native methods in unnamed classes
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Jul 20 09:20:45 UTC 2023
Good point Tagir.
IMHO this is something that needs to be looked at. While it's true that
the compiler will have to come up with a name for the class, there's no
guarantee anywhere that such a name will be stable. E.g. perhaps the
Java compiler can change the name of the class depending on the contents
it saw at the time of compiling (we don't do this, but JLS doesn't say
it can't be done). Which then would leave you with a set of *unstable*
native methods.
Maurizio
On 20/07/2023 10:17, Tagir Valeev wrote:
> Hello!
>
> A quick question about unnamed classes specification draft [1]. I
> don't see that native methods are explicitly forbidden inside unnamed
> classes. If they are allowed, it's not quite clear how to define the
> name of the corresponding method in the native library according to
> [2], as the binary name of an unnamed class can be arbitrarily defined
> by java compiler (JLS 13.1). Or is this not a problem?
>
> With best regards,
> Tagir Valeev
>
> [1] https://cr.openjdk.org/~gbierman/jep445/jep445-20230524/specs/unnamed-classes-instance-main-methods-jls.html
> [2] https://docs.oracle.com/en/java/javase/20/docs/specs/jni/design.html#resolving-native-method-names
More information about the amber-spec-experts
mailing list