gpt4 book ai didi

java - 限制方法接受 ContextCompat 解析的资源

转载 作者:行者123 更新时间:2023-12-02 12:31:31 24 4
gpt4 key购买 nike

我有一个模型,其中一位设置者期望得到 Color Resource但在未解析资源的情况下无法直接使用该资源(通过使用 ContextCompat )。

有没有办法可以注释我的方法来指示/限制这一点?

public class SimpleModel {
private String name;
private int bgColor;
private int bgImage;

public String getName() {
return name;
}

public void setName(final String name) {
this.name = name;
}

public int getBgColor() {
return bgColor;
}

public void setBgColor(@ColorInt final int bgColor) {
this.bgColor = bgColor;
}

public int getBgImage() {
return bgImage;
}

public void setBgImage(@DrawableRes final int bgImage) {
this.bgImage = bgImage;
}
}

我知道@ColorRes@ColorInt -- 但他们并没有完全解决我的问题。

这是注释可以帮我处理的事情吗? JavaDocs 怎么样?

如果不是——我如何检查正在传递的资源是否可用?

最佳答案

@ColorRes表示要求参数为颜色资源ID。

@ColorInt 实际上是 @!ColorRes(如果可以通过注释应用“not”运算符)。它表示要求参数为 int,而不是颜色资源 ID。

因此,您的 public void setBgColor(@ColorInt Final int bgColor) 方法应产生以下结果:

  • model.setBgColor(R.color.red):Lint 错误

  • model.setBgColor(getColor(R.color.red)):没有错误

  • model.setBgColor(ContextCompat.getColor(this, R.color.red)):没有错误

如果出于某种原因,您需要区分后两种情况......我认为没有办法做到这一点。

关于java - 限制方法接受 ContextCompat 解析的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com