Class.getSimpleName not suitable for non-Java classes
Aleksey Shipilev
shade at redhat.com
Fri Mar 17 13:18:30 UTC 2017
On 03/16/2017 02:16 PM, Daniel Armak wrote:
> Thanks! This resolves the issue of confusing a class named "int" with the
> primitive type.
>
> Unfortunately, it doesn't resolve the issue of getSimpleName throwing due to
> JDK-8057919, because getCanonicalName calls getSimpleName.
>
> Actually, I think getCanonicalName isn't a good idea regardless, because it
> returns null for anonymous classes, and I think you should use getName instead
> in those cases. So you might as well use getName also if getCanonicalName
> throws, or just always use it.
The trouble with using getName() is that it replies the JVM signature like C],
which is not very human-readable.
These two fixes should solve the issue from JDK-8057919 and handle anonymous
classes well:
https://bugs.openjdk.java.net/browse/CODETOOLS-7901918
https://bugs.openjdk.java.net/browse/CODETOOLS-7901919
Check now, please?
-Aleksey
More information about the jol-dev
mailing list