Objective C から Java に移植されたコードベースに取り組んでいます。nullcheck を使用しないメソッド チェーンの使用法がいくつかあります。
dog.collar().tag().name()
安全な逆参照演算子?に似たものを探していました。nullchecks の代わりに Groovy で
dog.collar?.tag?.name
これにより、Maybe モナドは Null の代わりに Nothing の概念を持つようになりました。しかし、値がアクセスされたときに、私が遭遇した Nothing のすべての実装は例外をスローしますが、それでもチェーンの問題は解決されません。NullObject パターンのように動作するモックを返す Nothing を作成しました。しかし、それはチェーンの問題を解決します。
この Nothing の実装に問題はありますか?
public class Nothing<T> implements Maybe<T> {
private Class<T> klass;
public Nothing(Class<T> klass) {
this.klass = klass;
}
@Override
public T value() {
return mock(klass, Mockito.RETURNS_DEEP_STUBS);
}
}
私が見る限り
- コードでモッキングライブラリを使用するのは奇妙に感じます
- 最初のヌルで止まらない。
- null参照または名前が実際にnullであるため、null結果を区別するにはどうすればよいですか? Groovy コードではどのように区別されますか?