私は以下の方法があります。戻り値の型を特定のクラスの変数にするにはどうすればよいですか?
public abstract String getIntent()
そして、私はクラスのインテントのクラス変数であることをメソッドの戻り値の型を強制したい以下のクラス
public class Intents
{
public static final String SUCCEEDED = "SUCCEEDED";
public static final String FAILED = "FAILED";
// hundreds of other strings.
}
。どうすればいい?私は、例えば@StringRes のようなカスタム注釈のいくつかの種類を使用するのではと思っている:私はすべての利用可能な注釈を見れば
public abstract @Intents String getIntent()
しかしこれだけR.java
ファイルで生成されたIDのために働くようです。戻り値の型は常に整数であり、R.java
にはアノテーションのような類似の名前を持つ複数のクラスが含まれており、生成された整数が各クラスに含まれているため、この結論に至りました。
次に、R.java内でカスタムクラスを作成する方法を考えていたので、注釈を作成することができました。しかし、私はそれをする方法を見つけませんでした。私は単に別のXMLを作成し、このようなすべての意図のための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クラス全体を書き直す必要があります。
この問題を解決するにはどうすればよいでしょうか?
他strings'の何百も/ FAILED SUCCEEDEDされているように '場合は、列挙型が良いです。 – chancyWu