toString():用于调试还是用于人类?

2023-11-24

class Address
{
  private enum Component
  {
    NUMBER,
    STREET,
    STATE,
    COUNTRY
  }

  private Map<Component, String> componentToValue = ...;
}

我希望我的类包含两种方法:

  1. 一个指示每个地址组件的值(这样我可以在出现问题时进行调试)。
  2. 以人类期望的形式返回地址:“1600 Amphitheatre Parkway Mountain View, CA 94043”。

Object.toString() 的最佳实践是什么?它主要是针对#1还是#2?这些方法的命名是否有最佳实践?


您是否会在 SMS 消息和 HTML 页面中以相同的方式设置地址格式?英语、法语和日语的格式是否相同?

如果不是,那么您就有了答案:表示不属于该对象,而是属于显示该对象的表示层。除非该对象是专门为表示层制作的,例如如果它是 HtmlI18nedAddress,则使用 toString 进行调试。

考虑Date vs SimpleDateFormat. Date包含状态和SimpleDateFormat返回多个表示。

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

toString():用于调试还是用于人类? 的相关文章

  • 如何克服原语按值传递的事实

    我有一段很长的代码来计算两个值 doubles 对我来说 我在几个地方使用了这段代码 为了坚持 DRY 原则 我应该将这段代码重构为一个很好的单元测试方法 但是我不能让它返回两个双精度数 而双精度数是原始的 因此不能按值传递和操作 我能想到
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • Hibernate注解放置问题

    我有一个我认为很简单的问题 我见过两种方式的例子 问题是 为什么我不能将注释放在字段上 让我举一个例子 Entity Table name widget public class Widget private Integer id Id G
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • hibernate锁等待超时超时;

    我正在使用 Hibernate 尝试模拟对数据库中同一行的 2 个并发更新 编辑 我将 em1 getTransaction commit 移至 em1 flush 之后我没有收到任何 StaleObjectException 两个事务已成
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • Eclipse 中 Spring MVC 模型对象的 (jsp /jstl) 视图中的代码辅助

    在 Spring MVC 中 当将对象放置在视图模型中时 如下所示 public String getUser Model model fetch user model addAttribute user user return viewN
  • 为什么这个作业不起作用?

    我有课Results which extends ArrayList
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的

随机推荐

  • AVMutableCompositionTrack - insertTimeRange - insertEmptyTimeRange 问题

    我有一个奇怪的问题 我想用两个声音文件和静音生成一个新的声音文件 声音1 2秒长 静音 2秒静音 声音2 2秒长 当我尝试下面的代码时 我得到了一个 6 秒长的声音文件 其中包含所有部分 但顺序不同 顺序是 声音1 声音2 静音 我无法将这
  • 动态创建并提交表单

    有办法进去吗jQuery即时创建并提交表单 像下面这样 Content Are
  • 函数局部 typedef 在 C++0x lambda 中是否可见?

    我遇到了一个奇怪的问题 以下简化代码重现了 MSVC 2010 中的问题 template
  • 在 Oracle 中定义局部变量的最简单方法是什么?

    在SQL Server中 我可以像这样定义局部变量 declare id number 1000 select from tbl A where id id select from tbl B where id id 非常方便 我尝试做同样
  • 为什么VPC中的AWS lambda函数有时会超时,有时会正常工作?

    我在 VPC 中有一些 lambda 函数 其中一些需要 Internet 才能工作 所以我添加了一个 NAT 实例 t2 micro 问题是我有一些函数有时可以工作 有时会超时 例如 调用 FB API 的函数 80 的时间工作 20 的
  • 在 Vim 中运行 Python 代码

    我正在使用 Vim 编写 Python 代码 每次我想运行代码时 我都会在 Vim 中输入以下内容 w python 这让人沮丧 所以我一直在寻找一种更快的方法来在 Vim 中运行 Python 代码 也许从终端执行 Python 脚本 我
  • 如何抑制 C# 中的 thread.abort() 错误?

    当我的程序加载时 我在后台线程上显示启动屏幕 一旦加载 我将中止线程 因为它的唯一目的是显示 正在加载 启动画面 我的问题是 当中止线程时 它会抛出ThreadAbortException用户只需单击 继续 即可 我该如何处理这个问题 我试
  • 从文本文件中获取非空白行的总数?

    我在用 File ReadLines file txt Count 查找文件中的总行数 我怎样才能做到这一点 但忽略所有空白行 您可以使用String IsNullOrWhiteSpace方法与Count File ReadLines fi
  • 在控制台中查看 TFS 变更集详细信息

    我正在使用 TFS 并且想要查看包含多个文件中的更改的变更集上的所有更改 在 GUI 中查看此内容效率不高 因为我必须打开每个文件 我想做的是告诉控制台上的 TFS 向我显示对变更集编号 777 中的所有文件的所有更改 是否有命令可以执行此
  • 如何输入最初为 None 但保证获得值的提示变量

    我有一个类变量 如下所示 class MyClass def init self self value MyOtherClass None None self initialize value def initialize value se
  • Scala 方法调用中括号的规则是什么?

    toList 不是一个将某些内容转换为 List 的方法吗 如果是的话为什么我不能使用括号呢 我一定在这里遗漏了一些更基本的东西 这是示例 val l Array 1 2 3 toList works fine val l Array 1
  • 如何让 mechanize 等待网页“完全”加载?

    我想抓取一些动态加载其组件的网页 该页面有一个加载脚本 在浏览器中输入 URL 后 3 5 秒我就可以看到完整的页面 问题是 当我打电话时br open URL 响应是 0 秒处的网页 3 5 秒后 HTML 我想要的 和结果之间存在差异b
  • 如何让椭圆闪烁?

    我正在尝试在 WPF 中制作自定义控件 我希望它能够模拟 LED 闪烁的行为 该控件有三种状态 开 关和闪烁 我知道如何通过后面的代码设置打开和关闭 但是这个 WPF 动画东西简直让我发疯 我无法让任何东西动画化 该计划是拥有一个称为状态的
  • Numpy 矩阵旋转任意度数

    我尝试找到一种方法 在包含 RGB 等三个波段但值大于 0 255 的矩阵上应用任意度数的矩阵旋转 这是我的数据示例 其形状为 100 100 3 847 5 877 886 821 5 856 5 898 850 883 969 5 88
  • 我可以显式导入 dom 类型吗?

    按照惯例 开发人员会在全球范围内包含全局 dom 类型并在全球范围内使用它们 compilerOptions lib dom 是否可以显式使用 dom 类型 就像是 import MessagePort HTMLElement from d
  • 如何在 Android 中阅读 pdf

    我想在android 中阅读PDF 文件 我将 PDF 文件放在 asset 文件夹中 我如何从那里读取 PDF 文件 PDF阅读器链接 我已经检查了上面的链接 但它对我不起作用 它给我一个错误 说找不到活动 我还想在WebView中打开P
  • 作为类成员的灵活数组

    海湾合作委员会 G 9 这段代码 class foo int bar 111 123 产生有关灵活数组的初始值设定项的错误 但这一个 class foo int bar 2 111 123 正常编译 有什么解决方法可以不计算我输入的值吗 与
  • Jackson - 动态抑制属性的序列化(写入)

    我正在尝试使用 Jackson 将 Tomcat jersey 中的 java 对象转换为 JSON 对象 并希望动态抑制某些属性的序列化 写入 我可以使用 JsonIgnore 但我想在运行时做出忽略决定 有任何想法吗 因此 作为下面的示
  • Spring Zuul API 网关,在同一请求中使用 Spring Session / Redis 进行身份验证和路由

    在过去的几天里 我一直在苦苦寻找如何做到这一点 最后决定承认失败并寻求帮助 拜托 我遵循 Dave Syer 博士关于 Angular 和 Spring Security 的教程 特别是 Zuul 代理作为 api 网关以及将 Spring
  • toString():用于调试还是用于人类?

    class Address private enum Component NUMBER STREET STATE COUNTRY private Map