gpt4 book ai didi

Java Class.getSimpleName() 和 .getName() 在 Cacao 和 Sun Java 上的行为不同

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:21 24 4
gpt4 key购买 nike

有人知道为什么会发生这种情况吗?

这是 Java DBus 绑定(bind) (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

异常并不重要——它是由这种行为引起的……有什么想法吗?或者这是 Cacao 的一些奇怪错误。

有谁知道 .getName() 是否依赖于 VM?

信息:

两个 JVM 上的 GNU Classpath 0.98DBus 绑定(bind) 2.6

最佳答案

这很可能是 GNU Classpath 到 Cacao 平台的端口中的错误。如果我没记错的话,java.lang.Class 的类路径版本中的大多数方法都委托(delegate)给需要为库的每个端口实现的“vm”类。

当然 Class.getSimpleName() 应该返回没有包限定的类名。

关于Java Class.getSimpleName() 和 .getName() 在 Cacao 和 Sun Java 上的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com