我得到了一堆用于测试的常量。 它们看起来像这样:
//Canada
private final static String CA_QUEBEC = "CA/Québec/Québec";
private final static String CA_VANCOUVER = "CA/British Columbia/Vancouver";
//USA
private final static String US_LOS_ANGELES = "US/California/Los Angeles";
private final static String US_NEW_YORK = "US/District of Columbia/New York";
//FRANCE
private final static String FR_PARIS = "FR/Paris/Paris";
等。 我的测试的目标是在使用其中一个常量时快速运行我的应用程序: 例如:
String cityPath = FR_PARIS;
然而,由于我只使用其中一个,我必须使用抑制警告注释包围每个常量(除了我使用的那个,见下文):
//Canada
@SuppressWarnings("unused")
private final static String CA_QUEBEC = "CA/Québec/Québec";
@SuppressWarnings("unused")
private final static String CA_VANCOUVER = "CA/British Columbia/Vancouver";
因此,尽管声明了这些常量,但编译器并没有抱怨这些常量没有被使用。此外,当我选择其中一个常数时,我又得到另一个警告告诉我,我使用了抑制警告注释,但我的常数实际上已经被使用了。
如果我想摆脱所有警告,我应该花时间去删除那些注释,这对我的想法来说是不可思议的。
那么,在这种情况下,如何获得干净,无警告的代码。我正在寻找一个简单而优雅的解决方案(例如,不是内省)。
感谢所有人,Stack Over Flow真的很酷。 :)
斯特凡
答案 0 :(得分:4)
让他们public
或protected
,你的警告就会消失。
这似乎是一种代码味道,您手动更改它们以运行测试。对每个常量进行单独测试会不会更有意义?如果有很多公共代码,那么你可以有一个基类来扩展。
答案 1 :(得分:1)
最简单的解决方案:将您的常量标记为公开。