Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用注释实现动态过梁检查?_Java_Android_Gradle_Kotlin - Fatal编程技术网

Java 如何使用注释实现动态过梁检查?

Java 如何使用注释实现动态过梁检查?,java,android,gradle,kotlin,Java,Android,Gradle,Kotlin,在AndroidStudio中,我们可以使用@IntegerRes来表示Int参数必须是资源 如果我们使用Int而不是Resource值,它将动态地抱怨(在我们编码时,在编译之前) 点击@IntegerRes将看到下面的代码 /** * Denotes that an integer parameter, field or method return value is expected * to be an integer resource reference (e.g. {@code an

在AndroidStudio中,我们可以使用
@IntegerRes
来表示
Int
参数必须是资源

如果我们使用
Int
而不是
Resource
值,它将动态地抱怨(在我们编码时,在编译之前)

点击
@IntegerRes
将看到下面的代码

/**
 * Denotes that an integer parameter, field or method return value is expected
 * to be an integer resource reference (e.g. {@code android.R.integer.config_shortAnimTime}).
 */
@Documented
@Retention(CLASS)
@Target({METHOD, PARAMETER, FIELD, LOCAL_VARIABLE})
public @interface IntegerRes {
}
我想了解这个注释是如何动态处理的,这样我就可以制作我的注释了。在哪里可以找到此代码的源代码?(我以为所有Android代码都是开源的)

它们都是开源的:

还有很多关于如何实现自定义lint检查的文章,哪怕是

由于您似乎不必费心实际获取我提供的资源,因此,这一部分将检查参数的注释,例如,
@ColorInt
注释的参数是否实际传递了有效的颜色:


阅读有关皮棉和定制皮棉检查的信息。请记住在询问之前进行彻底的网络搜索。谢谢。我的目的更多的是制作一个能够执行一些动态操作(例如lint)的注释处理器。不仅仅是对所有东西进行毛毯线头检查。@IntegerRes将只对使用它的人应用它的lint,而不是lint所有参数。谢谢。我的目的更多的是制作一个能够执行一些动态操作(例如lint)的注释处理器。不仅仅是对所有东西进行毛毯线头检查。
@IntegerRes
将只对使用它的人应用它的lint,而不是lint所有参数。我完成了您的工作并键入了“Strg+F:Annotation”。在那里,我添加了你想要的文件。是的,可以找到。代码只显示了正常的lint检查算法,这是可行的。但我的问题是
如何使用注释实现动态衣料检查?
。不仅是静态检查,而且是动态检查(而不是一个代码)。提供的源代码和显示似乎没有显示如何完成,仍然使用相同的检查。在你的代码技巧上没有魔法。AndroidStudio只是在您键入时在后台运行linter。您可以在文件->设置->编辑器->检查中启用/禁用检查并设置其警告级别。。在那里你可以找到Android->Lint->corrective,在那里你可以找到我指出的linter检查:“不正确的支持注释用法”
/**
 * Denotes that an integer parameter, field or method return value is expected
 * to be an integer resource reference (e.g. {@code android.R.integer.config_shortAnimTime}).
 */
@Documented
@Retention(CLASS)
@Target({METHOD, PARAMETER, FIELD, LOCAL_VARIABLE})
public @interface IntegerRes {
}