我有以下方法。
public abstract String getIntent()
以下课程
public class Intents
{
public static final String SUCCEEDED = "SUCCEEDED";
public static final String FAILED = "FAILED";
// hundreds of other strings.
}
我想强制该方法的返回类型是Intents类的类变量。我该怎么办?我曾想过使用像@StringRes这样的自定义注释 例如:
public abstract @Intents String getIntent()
但是,如果我查看所有可用的注释,这似乎只适用于R.java
文件中生成的id。我得出了这个结论,因为返回类型总是一个整数,R.java
包含多个具有相似名称的类,如注释,每个类包含生成的整数。
接下来,我在思考如何在R.java中创建自定义类,以便创建注释。但我没有办法做到这一点。我可以简单地创建一个单独的xml并为每个Intent生成一个id,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="succeeded" type="string">succeeded</item>
<item name="failed" type="string">failed</item>
</resources>
然后使用@StringRes注释。但是,这只会限制我使用任何类型的字符串资源。
我想到的另一个解决方案是创建一个枚举。通过这种方式,我可以简单地使用该枚举作为返回类型。但是如果有可能的话我想使用注释。否则我将不得不重写整个Intents类。
解决此问题的最佳方法是什么?