java - 不返回对象 ID 的整数或 boolean 值的 toString()

标签 java object tostring

我有一组代表数字逻辑门的类,我想创建一个 toString() 命令,它将递归地遍历并打印它们。问题是它们可以包含门、 boolean 值或整数,当我调用 Boolean.toString() 或 Integer.toString() 时,打印的是对象 ID 而不是分配的值。有没有办法在这些对象上一般调用 toString()(或类似)命令并让它们打印分配的值?

使用下面的代码,输出类似于:“AND([I@6ca1c,[Z@1bf216a)”

我希望它看起来像:“AND(11,true)”

public static class Gate{
    public Object in1;
}

public static class ANDgate extends Gate{

    public Object in2;

    public ANDgate(Object first,Object second){
        in1 = first; // these can be Integer, Boolean, or another Gate
        in2 = second;
    }
    public String toString(){
        return("AND(" + in1 + "," + in2 + ")");
    }
}

public static class NOTgate extends Gate{

    public NOTgate(Object obj){
        in1 = obj; // this can be Integer, Boolean, or another Gate

    }
    public String toString(){
        return("NOT(" + in1 + ")");
    }
}

最佳答案

您的输出清楚地表明您将 int[]boolean[] 传递给构造函数,而不是 IntegerBoolean 如您所说(参见 Class.getName() 了解二进制类型名称的含义,例如 [I])。

如果这是预期的,那么您需要提供自己的函数来将数组转换为 String 并使用它来代替使用返回哈希的默认 toString() 实现数组的基值。

关于java - 不返回对象 ID 的整数或 boolean 值的 toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463923/

相关文章:

java - toString 方法打印空变量,无法理解为什么(Java)

f# - 打印F#区分的联合

java - 将动态 JSON 对象发布到 Spring RESTful Web 服务

java - 尽管使用 method=post,提交的表单数据在 url 中可见

java - 在 Java 中对对象使用运算符

objective-c - NSArray 循环抓取对象

java - 从 Java 中的 toString 方法捕获异常

java - Sql关键字用法作为jpa实体列名

java - 自动缩放字体以适合面板

java - 访问可以是 ConcurrentHashMap 的对象的 ConcurrentHashMap