私は try/do (または trier/doer) パターンのファンです。これは、out
パラメータを使用して C# で実装するのが最適です。
DateTime date;
if (DateTime.TryParse("2012-06-18", out date))
{
//Do something with date
}
私は現在、Java 1.5 プロジェクトに取り組んでいます。このプロジェクトでは、try/do パターンを実装するメソッドから返される TryResult という新しいクラスを使用して、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 でこのパターンを実装するより良い方法はありますか?