android 注释语法

android Annotation Syntax

我知道这是个愚蠢的问题但是

我从未使用过 android Annotation,它只是在 android studio 中自动完成出现,我认为使用它是个好主意,对吗?

我做了研究,学会了如何将它与 parameters 一起使用,但我没有找到任何关于如何将它与 pairgeneric[=20= 一起使用的信息]

这是我的代码

private Pair<StringRes ,DrawableRes> getRespectiveStingAndDrawableRes(String permission) {
        if(permission.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE))
            return Pair.create(R.string.WRITE_EXTERNAL_STORAGE_permision_message,R.drawable.ic_menu_gallery);
        return null;
    }

出现了这个错误

Error:(49, 31) error: incompatible types
required: Pair<StringRes,DrawableRes>
found:    Pair<Integer,Integer>

我尝试使用 IntegerRes 但还是不行

注意:我用的piarandroid.support.v4.util.Pair

我不确定你的问题与注释有什么关系,因为你没有使用任何注释,但错误指出 R.stringR.drawable 都是 int 值,并且不是 StringRes 或 DrawableRes

这可能有用。注意 @XRes 是注释,它不是 class 类型,就像您尝试使用它一样。

private Pair<Integer , Integer> getRespectiveStingAndDrawableRes(String permission) {
        if(permission.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE))
            return Pair.create(@StringRes R.string.WRITE_EXTERNAL_STORAGE_permision_message, @DrawableRes R.drawable.ic_menu_gallery);
        return null;
    }

如果这不起作用,则只需删除两个 @XRes 注释

您不能那样使用这些注释。它们主要用于将参数值限制为给定类型,例如@StringRes 要求指定的 int 值是有效的字符串资源。

对于这个 Pair 你仍然需要写 Integer,因为那是实际的变量类型:

private Pair<Integer, Integer> getRespectiveStingAndDrawableRes(String permission) {
    ...
}