我有一个静态方法,它返回一个Magic Constant的值。 每次我在代码中访问该方法时,都会收到如下警告:
必须是以下之一:Toast.LENGTH_SHORT,Toast.LENGTH_LONG
当我将@SuppressWarnings("MagicConstant")
添加到我想要访问返回Toast.LENGTH_SHORT
或Toast.LENGTH_LONG
的方法的方法时,警告会消失。
但每次我想使用静态方法时,我都必须添加这个抑制警告。这很烦人有没有办法直接将此警告添加到我的方法中,该方法返回两个值中的一个?
我试过了:
@SuppressWarnings("MagicConstant")
public static int getToastDuration() {
return ((statement) ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG);
}
但这不起作用。
我仍然需要将@SuppressWarnings("MagicConstant")
添加到我想要使用的方法getToastDuration()
我收到此警告的示例:
public void method() {
Toast.makeText(this,"text",Preferences.getToastDuration()).show();
}
Toast
类是Android:http://developer.android.com/reference/android/widget/Toast.html
答案 0 :(得分:2)
要回答您的实际问题,不,因为警告是在makeText
调用上触发的,而Preferences.getToastDuration()
调用代码分析器未正确识别int
确实返回了其中一个已批准的MagicConstant
1}}值。无论哪种工具给你警告(IDEA?)都无法深入了解代码。我不认为{{1}}警告是标准的,我会为此打开一个错误报告。
答案 1 :(得分:0)
不确定这是否有效......
将攻击方法包含在另一个方法中:
class Preferences
{
@SuppressWarnings("MagicConstant")
public static int getToastDuration()
{
return _getToastDuration();
}
private static int _getToastDuration()
{
return ((statement) ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG);
}
}