Eclipse中数组的默认细节格式化程序

时间:2012-01-21 01:06:43

标签: java sql eclipse debugging

在Eclipse中调试java程序时,在Variables视图中,当您突出显示变量时,它会在下面的窗格中打印该变量的详细信息。该窗格称为“详细信息视图”,显示的值是变量的“详细信息”。默认情况下,它只是在变量上调用.toString()的结果。但Eclipse允许您为任意对象指定和自定义“详细格式化程序”,以便将它们映射到该视图中更有用和描述性的字符串。

我的问题是:在数组上调用的.toString()方法(比如Integers)会返回一个无用的内存地址。但是,当我在调试模式下突出显示一个数组变量时,Eclipse似乎会智能地将其解析为一个非常有用的逗号分隔字符串(例如"[42, 13, null, 19]")。我认为这意味着Eclipse已经为具有非常有用的功能的数组建立了默认的详细格式化程序。 有谁知道如何在我的代码中利用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是否已经为我做了这个并且公开了一个有用的方法(阅读:我非常懒惰)

1 个答案:

答案 0 :(得分:3)

Eclipse使用Arrays.toString,但如果您想使用括号而不是方括号,则可能需要使用Guava

return "(" + Ints.join(",", array) + ")";