Tag: tostring

Java和.NET中ToString()的原始原因是什么?

我过去曾经适度地使用过ToString() ,并且在很多情况下我发现它非常有用。 但是,我使用这种方法几乎不能将此方法放在System.Object 。 我的猜测是,在执行工作期间的某个时刻以及为了提出.NET框架的初始设计而召开会议时,我们认为包含ToString()是必要的 – 或者至少非常有用 -将由.NET框架中的所有内容实现的方法。 有谁知道具体原因是什么? 我是否遗漏了大量的ToString()certificate有用的情况,以便成为System.Object一部分? ToString()的原始原因是什么? 非常感谢! PS – 再说一遍:我不是在质疑这个方法,也不是暗示它没有用,我只是想知道是什么让它变得非常有用,因为它被放置在System.Object 。 旁注 – 想象一下: AnyDotNetNativeClass someInitialObject = new AnyDotNetNativeClass([some constructor parameters]); AnyDotNetNativeClass initialObjectFullCopy = AnyDotNetNativeClass.FromString(someInitialObject.ToString()); 这不是很酷吗? EDIT(1): (A) – 基于一些答案,似乎.NET语言从Javainheritance了这一点。 所以,我正在为主题和标签添加“Java”。 如果有人知道为什么这是用Java实现的,那么请说清楚! (B) – 静态假设FromString vs Serialization:当然,但这是一个完全不同的故事,对吧?

BigInteger.toString方法正在删除前导0

我正在尝试使用MessageDigest生成MD5总和。 我有以下代码。 byte[] md5sum = digest.digest(); BigInteger bigInt = new BigInteger(1, md5sum); output = bigInt.toString(16); 这不返回32个字符串,而是返回31个字符的字符串8611c0b0832bce5a19ceee626a403a7 预期字符串是08611c0b0832bce5a19ceee626a403a7 输出中缺少前导0。 我尝试了另一种方法 byte[] md5sum = digest.digest(); output = new String(Hex.encodeHex(md5sum)); 输出正如预期的那样。 我检查了doc,Integer.toString根据它进行了转换 使用Character.forDigit提供的数字到字符映射,如果合适,前缀为减号。 并在Character.forDigit方法 如果0 <= digit <radix,则数字参数有效。 有人可以告诉我两种方法有何不同以及为什么前导0被删除?

为什么默认的Object.toString()返回hashCode的hex表示?

我很好奇为什么Object.toString()返回这个: return getClass().getName() + “@” + Integer.toHexString(hashCode()); 与此相反: return getClass().getName() + “@” + hashCode(); 将哈希码显示为hex而不是十进制有什么好处?

在Eclipse中自动生成toString方法的快捷方式是什么?

对于一些简单的类,自动生成toString方法是好还是坏? 我正在考虑生成类似下面的内容,它采用变量名称并生成一个toString方法,该方法打印名称后跟其值。 private String name; private int age; private double height; public String toString(){ return String.format(“Name: %s Age: %d Height %f”, name, age, height); }

toString()只对调试有用吗?

当然,除了它们与原语的使用。 我看到的大多数(如果不是全部)实现仅从程序员的角度来看是有用的。 编辑 :我明白我应该覆盖默认行为,这就是为什么我提到实现:)。 而且我确实得到了在GUI中需要字符串表示的一些组件中覆盖它的价值。 但是,至少在JDK中,我看到许多只在需要调试对象实例时才会使用的实现。 为什么它以Object类为根,因为这对GUI /调试东西似乎有用? 还有其他我不知道的用途吗?

在Java中是否可以覆盖Objects数组的’toString’?

在Java中是否可以覆盖Objects数组的toString? 例如,假设我创建了一个简单的类User (由于这是一个普遍的问题,因此它不属于哪个类)。 是否有可能,一旦客户端创建User[]数组并且客户端使用System.out.print(array) ,它就不会打印数组的地址而是自定义toString() ? PS:当然我不能在我的类中覆盖toString() ,因为它与单个实例有关。

如何以正确的方式打印对象内容?

我有一个ArrayList ,其中包含User类中的一些对象。 当我打印这些对象时,我得到了: [User @ 18fd984,User @ 18fd984] 如何以正确的方式打印这些对象?

反转(解析输出)Arrays.toString(int )

在JDK或Jakarta Commons(或其他任何地方)中是否存在可以解析Arrays.toString输出的方法,至少对于整数数组? int[] i = fromString(Arrays.toString(new int[] { 1, 2, 3} );

Java中’System.out.println()’和’toString()’之间的连接

Java中System.out.println()和toString()之间的连接是什么? 例如: public class A { String x = “abc”; public String toString() { return x; } } public class ADemo { public static void main(String[] args) { A obj = new A(); System.out.println(obj); } } 如果主类运行,则输出为”abc” 。 当我删除覆盖toString()的代码时,它输出为”A@659e0bfd” 。 那么,当我使用参数作为对象时,是否可以解释System.out.println()的工作原理是什么? 是否与toString()方法完全连接?

何时使用toString()方法

这可能听起来很基本……有人可以解释一下使用toString()方法以及何时有效地使用它? 已经在谷歌搜索但找不到任何好的资源。