JDK-8057919 Class.getSimpleName() should work for non-JLS compliant class names

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Jun 16 12:09:43 UTC 2015


John,

>
> That might be an issue here.  Just as (String)null and (String)"" are distinct values in Java, in the class file a CP ref of zero differs from a CP ref to a CONSTANT_Utf8 of the empty string "".  But the method Class.isAnonymousClass does not make a distinction between those two cases, which might sometimes lead to confusion.  I would view this as a bug in Class.isAnonymousClass.
For non-top level classes, Class.getSimpleName calls 
Class.getSimpleBinaryName which converts null to empty string, assuming 
it's an anonymous class. So, callers should not see null values.

Best regards,
Vladimir Ivanov



More information about the core-libs-dev mailing list