我得到了一个我必须学习的项目。了解。有一个类有以下内容: -
public abstract class AbstractPayment extends GodelCheckout {
public static final String AUTH_USING_GET = "GET";
public static final String AUTH_USING_POST = "POST";
@Retention(RetentionPolicy.SOURCE)
@StringDef({AUTH_USING_GET, AUTH_USING_POST})
public @interface AuthMethod {}
我尝试了解注释&为什么它们在Google的开发者网站上很重要,但除了它们用于改进代码之外我无法理解。
但他们如何改进代码呢?任何一个例子?
为什么这里需要@Retention(RetentionPolicy.SOURCE)
?
@StringDef()
实际上做了什么?
什么是public @interface AuthMthod{}
?
请解释Retention.SOURCE, .CLASS & .RUNTIME
到底是什么?我试过从Google的开发者网站上了解它们,但它没有多大帮助?
答案 0 :(得分:2)
AUTH_USING_GET
或AUTH_USING_POST
之外的其他参数。RUNTIME
时,将在运行期间检查代码。@StringDef
允许您仅传递String
个ID,例如R.string.login
。 @IntDef
允许您仅将R.id.sample_int
传递给函数有关更多问题,请参阅Java文档。