Eclipse中数组的默认详细信息格式化程序



在Eclipse中调试java程序时,在Variables视图中,当您高亮显示一个变量时,它会在下面的窗格中打印该变量的详细信息。该窗格称为"详细信息视图",显示的值是变量的"详细信息"。默认情况下,它只是对变量调用.toString()的结果。但是Eclipse允许您为任意对象指定和自定义"Detail Formatters",从而将它们映射到该视图中更有用、更具描述性的字符串。

我的问题是:对数组(比如Integers)调用的.toString()方法返回了一个无用的内存地址。然而,当我在调试模式下高亮显示一个数组变量时,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) + ")";

相关内容

最新更新