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

3
当在Eclipse中调试Java程序时,在变量视图中,当您突出显示一个变量时,它会在下面的窗格中打印该变量的详细信息。该窗格称为“详细视图”,显示的值是变量的“详细信息”。默认情况下,它只是调用变量上的 .toString() 方法的结果。但是,Eclipse允许您为任意对象指定和自定义“详细格式化程序”,将它们映射到在该视图中更有帮助和描述性的字符串。
我的问题是:在调试模式下高亮显示数组变量时,.toString() 方法在数组(例如整数数组)上调用返回一个不太有用的内存地址。然而,当我在调试模式下突出显示数组变量时,Eclipse似乎可以智能地将其解析成一个非常有用的逗号分隔字符串(例如"[42, 13, null, 19]")。我了解这意味着Eclipse已经为具有非常有用功能的数组建立了默认的详细格式化程序。有人知道如何利用该详细格式化程序来避免重写相同的逻辑吗?
如果您感兴趣,动机是生成SQL查询的IN子句的内容。也就是说,我正在尝试生成一个SQL查询:
SELECT * FROM table WHERE id IN (1,2,3)

从任意 int[] 数组中:

int[] ids = new int[] {1,2,3}

我意识到可以通过编写for循环、使用StringBuilder等方式来完成这个任务,但我想知道Eclipse是否已经为我做好了这些工作并公开了有用的方法(即:我非常懒)

1个回答

3

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

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

我正在尝试格式化StackTraceElement[],但是Eclipse似乎忽略了它,好像只接受StackTraceElement,有什么想法吗? - Aquarius Power
我最终创建了一个类来保存这样的数组。 - Aquarius Power

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接