JDK-8057919 Class.getSimpleName() should work for non-JLS compliant class names
John Rose
john.r.rose at oracle.com
Tue Jun 16 22:39:37 UTC 2015
What I'm suggesting is that a BC generator might emit a zero length name for a non-anon class, leading to confusion when C.isAnon is called.
– John
> On Jun 16, 2015, at 5:09 AM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>
> 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