Tag: tostring

Java中的toString覆盖

这个问题来自作业。 我必须在创建循环链接列表的类中覆盖toString()方法,实际上我有一个工作得很好的toString()方法,它将所有测试都传递给所有东西。 所以我的项目是自动进行的,它显然不赞成我的方法100%。 所以我的问题是:有没有更好的方法来编写这个更有效的toString()方法? public String toString() { if (size == 0) { return “[]”; } else { String output = “”; Node tempNode = actualElement; while (tempNode.next() != actualElement) { if (output.equals(“”)) { output = “[” + output + tempNode.data().toString(); tempNode = tempNode.next(); } else { output = output + “, ” + tempNode.data().toString(); […]

通过在Java中打印Object获得的信息是什么意思?

让我说我有这个代码: Integer[] a= new Integer[5]; System.Out.println(((Object)a).toString()); 输出是得到的 [Integer@89fbe3 89fbe3是什么意思? 这是某种地址吗? 哈希码? 它对每个物体都是独特的吗? ,如果是这样 – 如果它是一个multithreading程序,它仍然是唯一的吗? 谢谢 !

Java ArrayList / RMI

我已经建立了一个简单的项目类; class itemInfo{ int auctionID; int startPrice; int buyoutPrice; } 我创建了一个ArrayList; ArrayList itemSet = new ArrayList(); 我在这里也有一个允许用户创建项目的方法(方法不完整,我到目前为止只尝试实现选择== 1!); public void auctionChoice(){ System.out.println(“—- What would you like to do? —-\n”); System.out.println(“1: List an item for auction\n”); System.out.println(“2: Bid on an existing item\n”); System.out.println(“3: Remove an item from the auction\n”); if(scanner.next().equals(“1”)){ itemInfo createdItem = new itemInfo(); System.out.println(“—-Enter […]

如何使toString()方法返回Super Class私有字段及其实例字段?

有没有办法让toString()包含超class私有字段? 我尝试添加super.toString() ,但没有用。 请参阅下面的代码 Employee.java package test; public class Employee { private String name; private int id; private double salary; public Employee(String name, int id, double salary) { super(); this.name = name; this.id = id; this.salary = salary; } public double getSalary() { return salary; } @Override public String toString() { return “Employee [name=” + […]

在switch-case中使用枚举值的字符串表示

为什么在交换机情况下不能将枚举值用作字符串? (或者这有什么问题:) String argument; switch (argument) { case MyEnum.VALUE1.toString(): // Isn’t this equal to “VALUE1” ? // something break; case MyEnum.VALUE2.toString(): // something else break;

System.out.println()内的toString()方法是双重调用?

我的一位教授曾说过以下代码永远不应该做: 的System.out.println(object.toString()); 他说(我相信引用“有效的Java”)会导致双重调用。 由于print语句调用对象的toString方法,因此将toString方法调用两次效率较低。 首选方法是使用: 的System.out.println(对象); 显然,这种方式在代码中看起来更好,可以节省时间。 无论怎样,我总会这样做,但我的问题是“这实际上更有效吗?”。 在查看PrintStream文档时,print方法已被重载以将String作为参数(如果首先调用toString方法,则会出现这种情况)。 我没有看到那个版本的print方法调用输入参数的toString方法,我不相信它会这样做有意义。 此外,对不起,如果这是重复。 我找不到任何主题。

如何将StringReader转换为String?

我正在尝试将我的StringReader转换回常规String ,如下所示: String string = reader.toString(); 但是当我尝试读出这个字符串时,像这样: System.out.println(“string: “+string); 我得到的只是一个指针值,如下所示: java.io.StringReader@2c552c55 我在读回字符串时做错了吗?

命名(toString)Lambda-Expressions以进行调试

有时命名lambdas是有用的。 特别是当你将它们作为参数传递时。 一个非常简单的例子是 public class Main { public static void main(String[] args) { Predicate p = nameIt(“isNotEmpty”, (s) -> !s.trim().isEmpty()); maybePrint(“Hello”, p); maybePrint(” “, p); } static void maybePrint(T s, Predicate pred) { if (pred.test(s)) { System.out.println(s.toString()); } else { System.err.println(pred + ” says no to \”” + s + “\””); } } } jvm有一些function可以命名lambdas而不会失去幕后的优秀性能优化。 […]

从toString表示生成Java对象

我们都知道如何实现toString ()方法。 它可能是稍微自定义的实现和不同的模式我们如何打印对象数据。 使用生成的toString ,我们可以重新创建对象吗? 我不是在谈论Serialization 。 让我解释一个场景,你可能有一个应用程序在生产中愉快地运行,当你收到一些请求并做一些操作时,你的日志打印这些对象。 并且可能会提出一些问题。 要复制某些硬错误,您将返回到unit testing用例/ mockito,以使用类似数据重新创建问题。 现在如果我可以从它的toString表示重现对象,因为它的所有依赖对象也实现toString,我将能够清除大多数这些场景。 是否有默认的插件/工具来做同样的事情? 如果没有,它可能是我的下一个试穿项目:)

是否更好地使用getter方法或在覆盖toString时直接访问私有字段?

我已经看到了这两种方法,但是从来没有听说过任何一种方式比任何特定原因都优先于另一种方式。 public String toString() { return this.field1 + ” ” + this.field2; } 与 public String toString() { return getField1() + ” ” + getField2(); } 我在我的例子中使用String连接来保持代码简洁。