この階層ビルダー パターンで未チェックのクラス キャストを回避する方法はありますか?
public abstract class BaseBuilder <T, B extends BaseBuilder<T,B>> {
public B setB1(String b1) {
this.b1 = b1;
return (B) this; // can I make this unchecked cast go away?
}
abstract public T build();
String b1;
}
いいえ、答えはそうではありません:
return B.class.cast(this);
はい、@SuppressWarnings を使用できることはわかっています。