我是 try/do(或 trier/doer)模式的粉丝,这种模式最好在 C# 中使用out
参数实现,例如:
DateTime date;
if (DateTime.TryParse("2012-06-18", out date))
{
//Do something with date
}
我目前正在开发一个 Java 1.5 项目,为此我正在使用一个名为 TryResult 的新类来实现 try/do 模式,该类是从任何实现 try/do 模式的方法返回的:
public class TryResult<ResultType> {
private boolean mSuccess = false;
private ResultType mResult = null;
public TryResult(boolean success, ResultType result) {
super();
this.mSuccess = success;
this.mResult = result;
}
public boolean isSuccess() {
return mSuccess;
}
public ResultType getResult() {
return mResult;
}
}
这工作得很好,但我将把这段代码移植到使用 J2ME 的不同平台,因此泛型不可用。
我目前的选择是从TryResult
上面的类中删除泛型并使用普通的旧Object
类型和强制转换,或者为我最终将使用的类型创建一个新类(例如StringTryResult
)。
有没有更好的方法在 J2ME/Java 1.3 上实现这种模式?