3

不変オブジェクトを DTO オブジェクトにしたいと考えています。そのために、 http://immutables.github.io/を使用したいと思います。

次のレガシー階層があります。

public interface Interface1 extends Serializable{
    public void method1();
}

public interface Interface2<T> extends Interface1{
    public void method2();
}

public class Implementation1<T> implements Interface2<T>{
    public void method1(){ }

    public void method2(){
        return null;
    }
}

下位互換性を維持するために、以下に示す新しいインターフェイスと実装を実装したいと考えています。

@Value.Immutable
public Interface3<T> extends Interface2<T>{
    public void method3();
}

これにより、ImmutableInterface3 クラスが生成され、ビルダーを取得してクラス実装をビルドできるようになります。

問題は、次のステートメントを使用できないことです。

Interface3<Object> immutableImplementationOfInterface3 = ImmutableInterface3<Object>.builder().build();

このソリューションに問題はありますか?

4

1 に答える 1

2

解決策は次のとおりです。

Interface3<Object> immutableImplementationOfInterface3 = ImmutableInterface3.<Object> builder().build();
于 2016-06-22T10:00:26.290 に答える