【问题标题】:Printing reference to an object [duplicate]打印对对象的引用[重复]
【发布时间】:2012-02-02 13:07:36
【问题描述】:

我是java新手。比如说,我有一个班级个人。我要打印

Individual ind = new Individual();
System.out.println(ind);

上面的代码给出如下输出:

Individual@1922221
  1. 这有什么意义?
  2. 它是某种唯一的 id 为那个对象?
  3. 我可以自定义这个吗?我的意思是写一个函数 我自己的打印时会给出输出?
  4. 如果是这样,我该怎么办 这个?

【问题讨论】:

  • 我已经详细回答了。它会帮助你更多。谢谢

标签: java object


【解决方案1】:

这是默认 toString() 方法的结果 - 类名 + 哈希码。这可以通过覆盖 toString() 来覆盖。

这里有一些参考:http://www.javapractices.com/topic/TopicAction.do?Id=55

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      如果要打印任何对象的有意义的内容,则必须实现自己的toString() 方法,该方法将覆盖父类(Object) 的toString() 方法。默认情况下,所有类(无论您创建什么)都扩展 Object 类。

      示例代码:

      public class Individual {
          private String name;
          private String city;
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getCity() {
              return city;
          }
      
          public void setCity(String city) {
              this.city = city;
          }
      
          @Override
          public String toString() {
              StringBuilder builder = new StringBuilder();
              builder.append("Name of Individual :").append(this.getName())
                      .append("\nCity :").append(this.getCity());
              return builder.toString();
          }
          public static void main(String[] args) {
              Individual individual = new Individual();
              individual.setName("Crucified Soul");
              individual.setCity("City of Crucified Soul");
              System.out.println(individual);
          }
      }
      

      输出:

      Name of Individual :Crucified Soul
      City :City of Crucified Soul
      

      如果你有更大的类和很多变量,你可以使用XStream 来实现你的 toString() 方法。 XStream 将以 XML 格式打印有意义的对象。即使您可以将它们解析回等效对象。希望这会对你有所帮助。

      【讨论】:

      • 没有解释1922221 是如何/为什么真正排在第一位的。
      【解决方案4】:

      由于尚未解释,覆盖 toString() 方法仅意味着您在类中创建自己的 toString() 方法。通过将您自己的 toString() 版本放入您的类中,您可以使 java 使用您的 toString() 方法而不是默认方法。但是,因为原始 toString() 方法返回一个字符串,所以您的 toString() 方法也必须返回一个字符串。您的个人课程如下所示:

      public class Individual{
      
          //any other code in the class
      
          public String toString(){
               return "your string";
          }
      
      }
      

      然后,当您调用 System.out.print(ind);它会打印出你的字符串。

      【讨论】:

        猜你喜欢
        • 2016-12-19
        • 2023-03-27
        • 2018-04-24
        • 2014-03-08
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 2015-11-17
        • 1970-01-01
        相关资源
        最近更新 更多