如何为自定义类创建 println/print 方法

2024-01-25

我正在使用 Java 开发一个项目,如果您愿意的话,该项目需要我制作一些“容器”类。这是其中一个的简单版本:

public class Pair{

    Object KEY;
    Object VALUE;

    public Pair(Object k, Object v)
    {
        KEY = k;
        VALUE = v;
    }

    public Object getKey()
    { return KEY; }
    public Object getValue()
    { return VALUE; }
}

(请注意,这已被严重简化,我在最终版本中使用了正确的设置/获取方法。)

我的问题是这样的:

当以ArrayList为参数调用println方法时,例如:

ArrayList<String> arr = new ArrayList<String>();
arr.add("one");
arr.add("two");
System.out.println(arr);

Java 自动知道如何正确打印 ArrayList 的每个“节点”或元素。

有没有办法编写一个方法来允许 println 方法正确打印我的 Pair 类?


您将需要覆盖toString http://download.oracle.com/javase/6/docs/api/java/lang/Object.html#toString%28%29方法并返回您想要的字符串表示形式。

例如:

public class Pair {

    Object key;
    Object value;

    public Pair(Object k, Object v)
    {
        key = k;
        value = v;
    }

    public Object getKey() { 
        return key; 
    }

    public Object getValue() { 
        return value; 
    }

    public String toString() {
        return "Key: " + getKey() + ", Value: " + getValue();
    }
}

您可以执行以下操作:

List<Pair> pairs = new ArrayList<Pair>();
pairs.Add(new Pair("pair1key", "pair1value"));
pairs.Add(new Pair("pair2key", "pair2value"));

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

如何为自定义类创建 println/print 方法 的相关文章

随机推荐

  • 使用 Boost Graph Library 将 boost 动态属性写入文件

    我已经问过问题了here https stackoverflow com questions 34132273 adding custom properties to vertex of a grid in boost graph libr
  • 如何将Spark结构化流数据写入Hive?

    如何将Spark结构化流数据写入Hive 有df write saveAsTable tablename 但是我不确定这是否会写入流数据 我通常这样做df writeStream trigger new ProcessingTime 100
  • 如何从 Node.js 中的错误中获取行名和文件名?

    假设我有 var err new Error My error 如何获取行名和文件名 在哪里Error被创造了 就像 PHP 中一样 ex new Exception ex gt getLine ex gt getFile 您可以使用堆栈跟
  • 如何使用 NSDateFormatter 查看“Today”字符串

    苹果在消息应用程序中使用它来发送今天的消息 今天上午 11 45 昨天上午 11 45 我在苹果开发者网站上看到它 要为日期格式化程序指定自定义固定格式 您可以使用 设置日期格式 格式字符串使用以下格式模式 Unicode 技术标准 35
  • 工厂方法模式与多处理队列的使用冲突

    我已经实现了工厂方法模式来参数化产品类的基类 def factory ParentClass class Wrapper ParentClass attr foo def wrapped method Do things to be don
  • 使用 PEM PrivateKey 签署字符串

    我有一个 PEM 编码的私钥 我需要用它签署一个字符串 但代码不断崩溃 出现异常 java security spec InvalidKeySpecException java lang RuntimeException error 0c0
  • 具有多个 Active Directory 服务器的 Grails Spring Security LDAP 插件

    我有 Grails Spring Security 插件连接到一台 Active Directory 服务器 没有任何问题 但是 我需要连接到多个服务器 我们在一台 AD 服务器上有一些用户 在另一台服务器上有其他用户 因此我们需要尝试在两
  • 内存转储比可用内存小得多

    我有一个 Tomcat 应用程序服务器 配置为在 OOM 上创建内存转储 并且以 Xmx1024M 启动 因此应该有千兆字节可供他使用 现在我找到了一个这样的转储 它只包含 260MB 的未保留内存 垃圾场怎么可能比他应有的可用大小小得多
  • SonarQube 规则鱿鱼:S1451 应定义版权和许可证标头

    我的所有 SonarQube 代码分析 Java 项目都未能遵循此规则 每个源文件都应以标头开头 说明文件所有权以及分发应用程序必须使用的许可证 此规则必须包含每个文件开头所需的标题文本 有一个参数 headerFormat 预期的版权和许
  • gnuplot 坐标系之间的转换

    TL DR 有没有办法在多图设置中对齐不同图的角 有没有办法转换axis坐标到screen坐标 详细解释 我正在尝试使用 gnuplot 布局一个相当复杂的画布 为了实现我想要的 我需要将不同的图精确地堆叠在一起 我做了类似的事情 rese
  • 使用replicate()或sapply()重复用户定义的函数

    我定义了一个自定义函数 如下所示 my fun function for i in 1 1000 for j in 1 20 return output 它返回一个输出矩阵 output 由 1000 行和 20 列组成 我需要做的是重复该
  • YouTube API:API 说它是可嵌入的且未被阻止,但当它嵌入时,它会被阻止

    我想知道是否有人遇到过这个问题 我正在尝试嵌入 The Killers Human 音乐视频 当我执行 API feed 请求时 如下所示 这表明视频是可嵌入的并且没有被阻止 它甚至声明您可以使用以下 URL 嵌入 然而 当我尝试此操作并播
  • 当键不统一时,如何在不使用 Pandas 的情况下从嵌套字典绘制条形图?

    我有一个像这样的嵌套字典 uvvm 0 250ms 96 500 750ms 2 usvv 0 250ms 1 unsharedChunksVirtualVolume 0 250ms 21 ubvv 0 250ms 60 250 500ms
  • React-intl,将 api 与 Typescript 结合使用

    我想使用formatMessage的功能react intlAPI 插入消息作为占位符 但我无法找出访问此函数的正确方法 这是我所拥有的简化版本 index tsx
  • 如何使用 wxPython 布局 3 窗格窗口?

    我正在尝试找到一种使用 wxPython 布局 3 窗格窗口的简单方法 我想在左窗格中有一个树列表 然后有一个分为两部分的右窗格 顶部有一个编辑组件 底部有一个网格组件 大致如下 Edit Tree Control Control
  • 使用 schtasks.exe 指定计划任务的运行目录

    我有一个由计划任务调用的应用程序 它从 Windows Server 2003 迁移到 Windows Server 2008 在 2003 年 该应用程序在可执行文件所在的目录中运行 2008年Environment CurrentDir
  • 升压 lambda 示例

    我创建了一张地图作为解决方案的一部分 enum Opcode OpFoo OpBar OpQux this should be a pure virtual abstract base class class Operation class
  • 单个键具有多个值的哈希表

    我想在单个键中存储多个值 例如 HashTable obj new HashTable obj Add 1 test obj Add 1 Test1 现在这会引发错误 你可以把你的test test1 test2 放在一个表中 然后将该表放
  • 聚合为一个实体

    在领域驱动设计中 如果我想使用存储库 我需要有一个聚合 据我所知 所以我有一个用户 它有 ID 登录名 电子邮件和密码 用户是具有唯一ID的域实体 当我想将用户添加到用户存储库时 我是否应该首先构建一个仅包含我的用户实体的聚合根的聚合 在这
  • 如何为自定义类创建 println/print 方法

    我正在使用 Java 开发一个项目 如果您愿意的话 该项目需要我制作一些 容器 类 这是其中一个的简单版本 public class Pair Object KEY Object VALUE public Pair Object k Obj