我有一个泛型类,其中包含 T 类型的结果或错误消息。它有两种方便的创建方法:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
使用给定的方法,我能够创建大多数类型的类型保存结果。我现在面临的问题是我无法创建本身是通用类型的错误服务结果。非常欢迎任何帮助!
为了进一步说明问题,假设我想返回类型为 的结果List<String>。如果结果创建成功,我可以使用以下ok()方法创建我的结果:
List<String> myStringList = ...;
Result<List<String>> result = Result.ok(myStringList);
Run Code Online (Sandbox Code Playgroud)
另一方面,如果发生错误并且我想返回相同类型的错误结果,则提供的方法将不起作用,因为无法创建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 …Run Code Online (Sandbox Code Playgroud)