如何在课堂上支持 println?

2023-12-28

我自己制作的类需要支持什么才能println()打印它?例如,我有:

public class A {
...
}

应该对哪些方法进行分类A必须让这段代码工作吗?也许是这样的:

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

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


您可以使用打印任何对象System.out.println(Object) http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println%28java.lang.Object%29。这个 println 的重载版本将打印出来toString您的对象的表示。如果您想自定义打印内容,则必须覆盖Object#toString() http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString%28%29方法,例如:

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将使用类,其形式如下(类名和实例哈希码的十六进制表示形式):

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

Bonus:如果你需要创建toString()从多个领域实施,有一些工具可以使其变得更容易。例如ToStringBuilder http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringBuilder.html来自Commons Lang。或者某些 Java IDE(例如 IntelliJ IDEA)甚至提供生成toString根据班级的领域为您提供帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在课堂上支持 println? 的相关文章

随机推荐

  • 异常代码:0xe0434f4d [重复]

    这个问题在这里已经有答案了 我在尝试运行 Windows 应用程序时遇到以下错误 错误应用程序名称 cribbageDemo exe 版本 1 0 0 0 时间戳 0x4f685fe3 错误模块名称 KERNELBASE dll 版本 6
  • 可扩展列表视图中的 Android 数据绑定

    我有一个非常具体的问题 我正在使用 android 数据绑定库 https developer android com topic libraries data binding index html https developer andr
  • LINQ-实体日期部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一种方法可以获取 linq to
  • 模拟:ASP.Net MVC 控制器操作与 Web 表单

    ASP Net MVC 控制器操作与 ASP Net Web 表单之间的模拟有区别吗 在同一个 Web 项目中使用完全相同的代码 当从 Web 表单连接到 SQL Server 时 我能够成功模拟 Windows 用户 但不能从控制器操作连
  • 从独立应用程序运行加特林的正确方法是什么

    我需要从主应用程序启动加特林模拟 用例如下 应用程序读取规范 并根据该规范生成测试用例 测试用例被转换为加特林场景 这些场景在加特林模拟中运行 到目前为止 我设法通过 sbt 插件做到这一点 然而 如果我们想在其他上下文中重用我正在开发的工
  • 视图控制器类的出口应该是弱还是强?操作系统应用程序

    这就是我所做的 制作一个干净的 OSX 项目 转到 main xib 并拖动弹出控制器 这在界面生成器上创建了 2 个可见对象 我去了 appDelegate h 文件并做了 属性 assign IBOutlet NSViewControl
  • 如何使用 `boost::spirit` 将语法解析为 `std::set`?

    TL DR 如何解析 a 的结果boost spirit语法转化为std set 完整的问题陈述 作为学习如何使用的练习boost spirit 我正在为 X 500 LDAP 可分辨名称设计一个解析器 语法可以在 BNF 格式中找到RFC
  • 如何有效地合并两个数据集?

    我正在尝试通过一个通用 ID 合并两个相当大的数据集 但不是大得离谱 360 000 X 4 57 000 X 4 我尝试过常规的merge merge data table and sqldf 每次我总是内存不足 cannot alloc
  • 在二维数组中查找可用的“数字”

    我有这个问题需要以最有效的方式解决 我有一个二维数组 其中包含以下内容 凡是 1 的东西都是一堵 墙 这意味着你无法穿过它 2 是您 进入 阵列或地图 如果您愿意 的入口 3是我们需要找到的东西 这是地图的示例 1111111 1 3131
  • 尝试在 Box 中创建文件夹的共享链接时出现访问被拒绝的错误消息

    所以从我的上一个问题 https stackoverflow com questions 22098865 privileges required to return the list of enterprise users in box关
  • 在类 Test 中实例化类 Test 的成员是否是递归?

    这是递归吗 public class Test Test test new Test public static void main String args new Test 版本怎么样实例初始值设定项 http www programcr
  • db4o 从数据库查询对象的最佳实践

    我正在使用两种不同的方式来查询 db4o 中的对象 我想讨论一下 1 在第一个示例中 我创建了一个 ObjectContainer 实例 打开连接 然后关闭它 ObjectContainer db Db4oEmbedded openFile
  • 为什么 VS 2008 不支持 J#,这种语言已经死了吗?

    MS 放弃 J 了吗 目前我们通过 J 程序集与软件集成 有谁知道2010年是否会得到支持 这是回答您问题的链接 http social msdn microsoft com Forums en US visualjsharpgeneral
  • 根据具体情况填写清单

    我参加了一次面试 面试官给了我一个关于list的问题 例如 原始列表如下 0 1 0 0 2 0 0 1 the 2应该尽可能地填充列表 除非遇到 1 所以输出将是 0 1 2 2 2 2 2 1 一个例子 0 2 1 0 1 2 0 0
  • 按日期对多个数据框中的列求和

    在我看来 这听起来像是应该在本地完成的事情 但我只是无法在 Pandas 中找到执行此操作的函数 是的 我可能只是一个白痴 基本上 我们假设我有 df1 x y date 1 2 1 1 2020 2 3 2 1 2020 3 4 3 1
  • C程序-for循环中的fork命令

    我正在编写一个C程序 使用fork命令并循环10次 同时 每次循环都会显示进程ID 以下是我的代码 include
  • .NET core 在缺少 cookie 时返回 500 而不是 401

    我有一个使用 cookie 身份验证的 NET core API 它由具有自己的登录路由的 PWA SPA 访问 In Startup cs public void ConfigureServices IServiceCollection
  • 通过 WCF 发送实体框架实体:如何防止导航字段序列化?

    我在通过 WCF 发送具有导航属性的实体框架生成的实体时遇到问题 我有一个Securities用于存储财务数据的数据库以及其中的两个表 Stock Id Symbol CompanyName ExchangeName Option Id S
  • 如何在CSS中将span元素居中? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有三个 span 我想要一个接一个
  • 如何在课堂上支持 println?

    我自己制作的类需要支持什么才能println 打印它 例如 我有 public class A 应该对哪些方法进行分类A必须让这段代码工作吗 也许是这样的 public static void main A a new A System o