gpt4 book ai didi

java - 在Java中打印到控制台的更简单方法?

转载 作者:行者123 更新时间:2023-12-01 20:07:30 26 4
gpt4 key购买 nike

当我在高中时,我曾经用这种奇怪的方式打印到控制台,在其中我定义了一个名为 say() 的方法,这样我就不必每次都键入 System.out.println()是时候我想打印一些东西了。这是一个非常简单的方法,如下所示:

public static void say(Object o){

System.out.println(o);

}

我真正能想到的唯一缺点是无法打印无法转换为字符串的对象,但是 System.out.println() 也会出现这个问题。我还知道方法调用会占用堆栈上的空间,但由于这不是递归方法,因此我真的不认为它有可能炸毁堆栈。如果有人知道这样做是否可以,请告诉我!

谢谢!

最佳答案

每次打印对象System.out.println(obj)或将其添加到字符串“值是”+obj时,obj.toString () 方法将被调用,当您使用一些内部有用信息覆盖此方法时,您将收到一条用户友好的消息。否则,您将收到一条包含对象包、类名和对象内存 ID 的消息。

调用System.out.println(obj)实在是太多了,只在控制台打印一个值,我个人喜欢进行静态导入并使用out.println(obj )。这不是最好的选择,但已经足够好了。

示例:

 import static java.lang.System.out;

public class PrintExample {

public static void main(String[] args) {
MyObject obj = new MyObject(10);
out.println(obj);
MyObject2 obj2 = new MyObject2(10);
out.println(obj2);
}

static class MyObject {

final int value;

MyObject(final int value) {
this.value = value;
}

@Override
public String toString() {
return "The value is " + value;
}
}

static class MyObject2 {

final int value;

MyObject2(final int value) {
this.value = value;
}

}
}

输出:

The value is 10
com.cflex.mp.api.log.PrintExample$MyObject2@60285225

关于java - 在Java中打印到控制台的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58979213/

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