我有一个定义为的注释类型
@IntDef({
MOOD.HAPPY,
MOOD.SAD,
})
public @interface MOOD {
int HAPPY = 0,
int SAD = 1,
}
现在我有一个定义为的函数
SomeFunctionName(MOOD mood) {
doingSomething...
}
我不知道如何将MOOD值传递给这个函数。编译器总是抱怨类型无法转换例如,我尝试了
SomeFunctionName(MOOD.HAPPY)
SomeFunctionName(0)
您的函数SomeFunctionName
被声明为接受MOOD,但您试图传递一个整数。
这编译得很好:
@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
(。