gpt4 book ai didi

java - toString方法调用void方法

转载 作者:行者123 更新时间:2023-12-01 13:11:04 24 4
gpt4 key购买 nike

嘿伙计们,我正在开发一个程序,我遇到了一个奇怪的问题,希望很容易解决。因此,我得到了一个程序的 shell 代码,该程序创建并打印整数链接列表。它有 print() 方法来格式化打印输出。然后我被要求创建一个 toString 方法,该方法返回一个包含列表的打印值的字符串。这是我的代码:

public void print()
{
System.out.println("--------------------");
System.out.print("List elements: ");
IntNode temp = front;
while (temp != null)
{
System.out.print(temp.val + " ");
temp = temp.next;
}
System.out.println("\n-----------------------\n");
}

public String toString()
{
String result;
result += System.out.print(print());
return result;
}

正如您所料,我从编译器中收到一条错误,指出此处不允许“void”类型。

最佳答案

问题基本上是你想要/需要一个 String来自print方法。您当前的设计是:

  • print :使用不同的 String 打印此类实例我想要/需要。
  • toString :尝试使用生成的 Stringprint .

可以注意到,这是一个设计问题。实现应该是相反的:toString生成所需String的方法对象引用的形式和 print方法只是打印 toString 的结果.

所以,只需调整 toString 中的代码即可完成你想要/需要的方法:

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("--------------------");
sb.append('\n');
sb.append("List elements: ");
while (temp != null) {
sb.append(temp.val);
sb.append(" ");
temp = temp.next;
}
sb.append("\n-----------------------\n");
return sb.toString();
}

public void print() {
System.out.println(toString());
}

关于java - toString方法调用void方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com