Shorly氏:
私はタイプTまたはエラーメッセージの結果が含まれている一般的なクラスを持っています。それは、創造のための2つの便利なメソッドがあります。
public class Result<T> {
private String errorMessage;
private T result;
...
public static <S> Result<S> ok(S body) {
return new ServiceResult<S>(body);
}
public static <S> Result<S> error(String errorMessage, Class<S> clazz) {
return new ServiceResult<S>(errorMessage);
}
}
与えられた方法で、私はほとんどの種類の結果ファイルの種類を作成することができています。私が今直面していないという問題は、私はジェネリックそのものであるタイプの誤りサービスの結果を作成することはできませんよということです。すべてのヘルプは大歓迎です!
さらに問題を指定するには、私はタイプの結果を返すようにしたいと想像List<String>
。結果が正常に作成されている場合は、私が使用して私の結果を作成することができますok()
方法を:
List<String> myStringList = ...;
Result<List<String>> result = Result.ok(myStringList);
一方、エラーが発生したと私は同じタイプのエラー結果を返すようにしたい場合は、それを作成することはできませんと、その後、提供される方法は、動作しませんClass<List<String>>
。
// error, List<String>.class does not compile
Result<List<String>> result = Result.error("Error message", List<String>.class);
// error, result is of type Result<List>
Result<List<String>> result = Result.error("Error message", List.class);
アンディ・ターナー:
public static <S> Result<S> error(String errorMessage, Class<S> clazz) {
return new ServiceResult<S>(errorMessage);
}
これは実際には使用されませんclazz
。だから、パラメータを削除し、あなたは値を指定する必要はありません。
Result<List<String>> errorResult = error("whatever");