繁体   English   中英

如何将 @IntDef 注释类型作为 function 参数传入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM