0

是否可以从他的参考 ID 中获取对象?

我得到一个字符串列表,其中包含一个对象的引用 ID,例如:

com.test.test.business.model.Gamma@20

如何从此引用 id 中获取对象?

它只是一个字符串,不能投射到对象本身

4

1 回答 1

6

您所看到的称为对象的默认toString。它是它所属的类的 FQCN(完全限定的类名)和对象的 hashCode 的合并。

引用 toString 的 JavaDoc:

Object 类的 toString 方法返回一个字符串,该字符串由对象作为其实例的类的名称、at 符号字符“@”和对象哈希码的无符号十六进制表示形式组成。换句话说,此方法返回一个等于以下值的字符串:

 getClass().getName() + '@' + Integer.toHexString(hashCode())

简而言之,您无法使用此引用 id获取对象。

我们可以覆盖toString以提供更易于阅读的输出。看看下面的两个类,有和没有toString。尝试执行 main 方法并比较两个打印语句的输出。

class Person {
    private String name;

    @Override
    public String toString() {
        return "Person [name=" + this.name + "]";
    }
}

class Address {
    private String town;
}

public class Test {
    public static void main(String... args) {
        Person person = new Person();
        Address address = new Address();

        System.out.println("Person is : " + person);
        System.out.println("Address is : " + address);
    }
}

但是,如果您真的在寻找一种方法来持久化对象并在稍后阶段恢复它们,那么您应该阅读Serialization

于 2013-02-05T15:22:44.027 回答