Несмотря на обе записи в багзилле о том, что это пофиксено, следующая программа все еще возвращает в Эклипсе 3.0 и выше (вплоть до свежайшего релиза 3.2) под 1.5-джавой (любой от Сана) строку "java.lang.String":
package test;
public class Cond
{
public static final void main (String [] args)
{
Object x = true ? true : "true";
System.out.println(x.getClass().getName());
}
}
Чтобы компилятор Эклипса сгенерил правильный код, нужно как-то варьировать константы, например:
package test;
public class Cond
{
public static final void main (String [] args)
{
boolean xx=true;
Object x = xx ? true : "true";
System.out.println(x.getClass().getName());
}
}
уже корректно вернет "java.lang.Boolean".
Досадно. Джастин зафайлил багу разработчикам Эклипса:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=155255