【问题标题】:how to print a 2D array from class if the we print the object the of the this class in main class如果我们在主类中打印此类的对象,如何从类中打印二维数组
【发布时间】:2015-06-13 20:11:32
【问题描述】:

我有一个类Employee,它有一个方法可以返回一个包含一些员工信息的二维数组。 我在同一个包中有另一个类 TestEmployee,我在其中创建了类 Employee 的对象测试,然后打印该对象。

Employee test = new Employee();
System.out.println(test);

现在这个测试对象应该打印我在Employee 中创建的数组。我无法编写代码来做到这一点。有人可以帮我解答这个问题吗?

谢谢

【问题讨论】:

标签: java multidimensional-array


【解决方案1】:

我不知道为什么有人会否决这个问题。

Employee 是 Object 类型,您不能打印 Objects 并期望得到良好的输出,因为它会打印出其哈希码(感谢 Obicere)。

好吧,除非你重写 toString() 方法。如果你这样做了,而且你做得很好,你可以这样做:

System.out.println(test.toString());

我假设您想打印出二维数组中包含的信息。如果是这样,那么您需要将所有这些信息解析为单个字符串,并让您的 toString() 方法返回它。

干杯,
贾斯汀

【讨论】:

  • 感谢您的 cmets。是的,我的 TestEmployee 类有 main 方法。假设我写了一个 toString() 方法。有什么办法,我不必做 test.toString() 来调用。我的意思是可以直接调用吗?
  • 呃,你可以在覆盖 toString() 后直接尝试这样做。我不确定它是否会起作用,因为我从未真正尝试过自己,但值得一试。
  • or some hex number I don't know. 实际上是 hashCode() 值。此外,System.out.println(test); 将在执行空检查后调用test.toString()。您的代码和答案的代码之间没有显着差异。
  • 哦,好的。直到。无论哪种方式,她仍然必须重写 toString() 方法以返回她的二维数组中的任何内容。谢谢你的新知识,哈哈。
  • @theguywhodreams :我能够在覆盖 toString() 方法后直接打印出来。谢谢
【解决方案2】:

我知道这已经很晚了,但是您使用 deepToString() 打印出一个多维数组。

【讨论】:

  • 感谢您的评论 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
相关资源
最近更新 更多