Java Class.getSimpleName () и .getName () ведут себя по-разному на Cacao и Sun Java - PullRequest
3 голосов
/ 28 августа 2009

Кто-нибудь знает, почему это происходит?

Это некоторые измененные строки из привязок Java DBus (2.6)

  // don't let people import things which don't have a
  // valid D-Bus interface name
  System.out.println("type.getName: " + type.getName() + "   type.getSimpleName: " + type.getSimpleName() );
  if (type.getName().equals(type.getSimpleName()))  {
      throw new DBusException(_("DBusInterfaces cannot be declared outside a package: " + "type.getName: " + type.getName()
              + "   type.getSimpleName: " + type.getSimpleName() ));
  }      

Теперь проверьте разницу между выходом Cacao (0.99.4) и Sun 1.5

.
@ubuntu:~/tmp/cacao$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02)
Java HotSpot(TM) Client VM (build 1.5.0_16-b02, mixed mode, sharing)

@ubuntu:~/tmp/cacao$ cacao -version
java version "1.5.0"
CACAO version 0.99.3+hg

java -Djava.library.path=/usr/lib/classpath:/ho... DBusChat 

type.getName: org.freedesktop.DBus   type.getSimpleName: DBus
...Exception in thread "main" org.freedesktop.dbus.exceptions.DBusExecutionException: Could not get owner of name 'framez.tests.dbus.DbusChatInterface': no such name

против ...

 cacao -Djava.library.path=/usr/lib/classpath:/ho... DBusChat
 type.getName: org.freedesktop.DBus   type.getSimpleName: org.freedesktop.DBus

Исключение не имеет значения - оно вызвано этим поведением ... Есть идеи? Или это какая-то странная ошибка с Какао.

Кто-нибудь знает, если .getName () зависит от виртуальной машины?

Информация:

GNU Classpath 0,98 на обеих JVM Привязки DBus 2.6

1 Ответ

15 голосов
/ 28 августа 2009

Скорее всего, это ошибка в порте GNU Classpath для платформы Cacao. Если я правильно помню, большинство методов в версии Classpath java.lang.Class делегируют классу "vm", который необходимо реализовать для каждого порта библиотеки.

Конечно, Class.getSimpleName() должен возвращать имя класса без квалификации пакета.

...