Java 是否有方法向方法声明声明suppresswarnings?

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时,警告消失。 但每次我想使用静态方法时,我都必须添加此选项。这很烦人。有并没有办法将此警告直接添加到返回两个值之一的方法中 我试过这个

我有一个静态方法,它返回一个。 每次访问代码中的方法时,我都会收到如下警告:

必须是下列之一: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是个问题,那么用一个单独的方法将其包装起来,然后只调用包装器。