在 Eclipse 中调试 java 程序时,在变量 View 中,当您突出显示一个变量时,它会在下面的 Pane 中打印该变量的详细信息。该 Pane 称为“详细信息 View ”,显示的值是变量的“详细信息”。默认情况下,它只是对变量调用 .toString()
的结果。但是 Eclipse 允许您为任意对象指定和自定义“详细信息格式化程序”,将它们映射到该 View 中更有用和更具描述性的字符串。
我的问题是:在数组(比如整数)上调用的 .toString() 方法返回无用的内存地址。然而,当我在 Debug模式下突出显示一个数组变量时,Eclipse 似乎智能地将它解析为一个非常有用的逗号分隔字符串(例如 "[42, 13, null, 19]"
)。我认为这意味着 Eclipse 已经为数组建立了一个默认的 Detail Formatter,具有非常有用的功能。 有谁知道如何在我的代码中利用 Detail Formatter 来避免重写相同的逻辑?
如果您感兴趣,动机是为 SQL 查询生成 IN 子句的内容。也就是说,我正在尝试生成一个 SQL 查询:
SELECT * FROM table WHERE id IN (1,2,3)
来自任意 int[]:
int[] ids = new int[] {1,2,3}
我意识到我可以通过编写 for 循环、使用 StringBuilder 等来完成此操作,但我想知道 Eclipse 是否已经为我完成了该操作并公开了一个有用的方法(阅读:我非常懒惰)
最佳答案
Eclipse 使用 Arrays.toString
,但如果您想使用圆括号而不是方括号,您可能需要使用 Guava :
return "(" + Ints.join(",", array) + ")";
关于java - Eclipse 中数组的默认详细信息格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949860/