当前位置: 首页 > 面试题库 >

我如何在课堂上支持println?

洪伟彦
2023-03-14
问题内容

我自己的班级需要什么支持才能println()打印出来?例如,我有:

public class A {
...
}

类应使用什么方法A来使此代码起作用?也许是这样的:

public static void main() {
    A a = new A();
    System.out.println(a);
}

我猜测该toString()方法必须重载。我对吗?这够了吗?


问题答案:

您可以使用来打印任何对象System.out.println(Object)。println的此重载版本将打印出toString您的对象的表示形式。如果要自定义要打印的内容,则必须重写该Object#toString()方法,例如:

public class A {
    private String foo;

    @Override
    public String toString() {
        // When you print out instance of A, value of its foo
        // field will be printed out
        return foo;
    }
}

如果不重写该Object#toString()方法,Object将使用class的默认实现,该实现具有以下形式(类名称和实例哈希码的十六进制表示形式):

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

奖励:
如果您需要toString()从多个领域创建实现,则可以使用一些工具来简化它。例如ToStringBuilder来自Commons
Lang。或者,某些Java IDE(例如IntelliJ IDEA)甚至可以toString根据类的字段为您生成。



 类似资料:
  • 问题内容: 我有一些类可以执行一些MySQL查询和准备好的语句。但是,我不知道如何在这些类中合并我的PDO对象。例如,我想做这样的事情: 不幸的是,它不起作用。有人可以建议一种优雅的方法吗?谢谢你的时间。抱歉,我是新手,如果您不清楚任何事情,请留下任何评论,我会尽力答复! 问题答案: 您可以在实现单例模式的类中实例化与数据库的连接。连接将完成一次,所有其他对象/脚本都可以轻松访问该类。 在下面的示

  • 问题内容: 我有很多线程的应用程序。其中之一是烧瓶,用于实现(辅助)API。它使用时负载低,并且永远不会暴露在Internet上,因此内置flask Web服务器非常好。 我当前的代码如下所示: 我觉得我做错了,因为所有文档都说“在模块级别创建flask应用程序”。但是我不想这样做- 它与我的测试弄混了,并且API只是大型应用程序的一小部分,该应用程序具有自己的结构和协议(每个“应用程序”都是在一

  • Scala课堂是Twitter启动的一系列讲座,用来帮助有经验的工程师成为高效的Scala 程序员。Scala是一种相对较新的语言,但借鉴了许多熟悉的概念。 因此,课程中的讲座假设听众知道这些概念,并展示了如何在Scala中使用它们。我们发现这是一个让新工程师能够快速上手的有效方法。网站里的是伴随这些讲座的书面材料,这些文字材料本身也是很有用的。 方法 我们认为最有意义的教学方式是,不要把Scal

  • 问题内容: 如果一个类实现了另一个类,那是什么意思?我找到了以下代码示例:http : //www.java2s.com/Code/Php/Class/extendsandimplement.htm 但不幸的是,它没有任何解释… 问题答案: 实现是指它采取接口指定的指定 行为 。考虑以下接口: 无论是和类实现的接口。 接口的优点在于,我们现在可以通过接口引用此类的实例。考虑以下示例: 该循环的输出

  • 问题内容: 我正在使用登录功能,但是遇到了我无法弄清的错误。 这是我的模型登录类: 最后一个函数给出错误“ 在类中找不到方法’close’ ”,“ 在主题类中找不到引用的方法。 ” 这是我的数据库类: 路径是正确的,事实并非如此。可能是什么错误? 问题答案: PhpStorm无法确定您的字段是什么类型。您可以通过简单的PHPDoc注释提供typehint来提供帮助:

  • 当一个类必须有某种对象的容器(集合)时,有几种选择,我想知道我更喜欢哪种实现。 以下是我找到的选项: 优点:AClass不依赖于集合的具体实现(在本例中为列表)。 缺点:AClass没有添加和删除元素的接口 优点:与IEnumerable相同,并且具有添加和删除元素的接口 缺点:ICollection接口定义了很少使用的其他方法,仅仅为了接口而实现这些方法是很无聊的。IEnumerable LIN