Java 如何使用注释实现动态过梁检查?
在AndroidStudio中,我们可以使用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
@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 {
}