Java 是否有方法向方法声明声明suppresswarnings?
我有一个静态方法,它返回一个。 每次访问代码中的方法时,我都会收到如下警告: 必须是下列之一:Toast.LENGTH\u SHORT,Toast.LENGTH\u LONG 当我将Java 是否有方法向方法声明声明suppresswarnings?,java,android,suppress-warnings,Java,Android,Suppress Warnings,我有一个静态方法,它返回一个。 每次访问代码中的方法时,我都会收到如下警告: 必须是下列之一:Toast.LENGTH\u SHORT,Toast.LENGTH\u LONG 当我将@SuppressWarnings(“MagicConstant”)添加到我要访问的方法中,该方法返回Toast.LENGTH\u SHORT或Toast.LENGTH\u LONG时,警告消失。 但每次我想使用静态方法时,我都必须添加此选项。这很烦人。有并没有办法将此警告直接添加到返回两个值之一的方法中 我试过这个
@SuppressWarnings(“MagicConstant”)
添加到我要访问的方法中,该方法返回Toast.LENGTH\u SHORT
或Toast.LENGTH\u 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的一个:来回答您的实际问题,不是,因为在代码分析器没有正确识别首选项的情况下,makeText
调用会触发警告。getToastDuration()
实际上会返回一个批准的int
值。无论哪个工具向您发出警告(想法?),都是没有深入查看代码。我不认为MagicConstant警告是标准的,我会为此打开一个bug报告。不确定这是否有效。。。
将传入方法包装到另一个方法中:
class Preferences
{
@SuppressWarnings("MagicConstant")
public static int getToastDuration()
{
return _getToastDuration();
}
private static int _getToastDuration()
{
return ((statement) ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG);
}
}
你能举一个例子说明你从哪里得到的警告吗?你从哪里得到的警告?从你的IDE?如果是,哪一个?是的,Android Studio(IntelliJ)可能你唯一的选择就是在IDE中完全禁用此警告。@MarkoTopolnik这似乎是IntelliJ人的一个有趣但不成熟的扩展。它可以识别特定的方法想要命名的数值常量作为输入,但显然无法跟踪它们何时由方法调用提供。在他们的系统中,应该可以用列出返回类型的Javadocs注释
getToastDuration()
,但现在,我没有看到这个选项;这是IntelliJ IDE发出的警告。看这里:我读了你问题的链接。答案似乎是“这是一个无法正常工作的非标准功能,请提交错误报告”。这不起作用,因为警告是由Toast触发的。makeText
@Simon,通过阅读您的原始问题,我得到的印象是警告来自使用getToastDuration()
而不是来自Toast.makeText
首先我也这么想,但检查一下答案:这就是android文档中的内容:看起来奇怪,它会触发一个警告,因为它被声明为int
。好的,如果makeToast是个问题,那么用一个单独的方法将其包装起来,然后只调用包装器。