[英]How to pass in a @IntDef annotation type as function parameter
我有一个注释类型定义为
@IntDef({
MOOD.HAPPY,
MOOD.SAD,
})
public @interface MOOD {
int HAPPY = 0,
int SAD = 1,
}
现在我有一个 function 定义为
SomeFunctionName(MOOD mood) {
doingSomething...
}
我不知道如何将 MOOD 值传递给这个 function。 编译器总是抱怨类型无法转换例如,我试过
SomeFunctionName(MOOD.HAPPY)
SomeFunctionName(0)
您的 function SomeFunctionName
被声明为情绪化,但您试图传递 integer。
这编译得很好:
@interface MOOD1 {
int HAPPY = 0;
int SAD = 1;
}
interface MOOD2 {
int HAPPY = 0;
int SAD = 1;
}
public class SO67518698 {
void m1(MOOD1 mood) {}
void m2(MOOD2 mood) {}
void m3(int x) {}
void client() {
m3(MOOD1.HAPPY);
m3(0);
}
您还应该考虑是否尝试定义接口(使用interface
)或注释(使用@interface
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.