ジェネリック型をロックダウンする際に問題があります。以下は、2つの列挙型クラスによって実装されるインタフェースです。 Cover
クラスは、CarRequest
クラスで指定されているジェネリック型を使用しています。 CoverType
インターフェイスを実装している列挙型のみを使用できるようにしたいと考えています。まずenumであるジェネリック型をロックする方法
私は、列挙型と使用によって拡張された抽象クラスを使用するのではと思った:
public class Cover<T extends AbstractCoverType>
しかし、それは動作しません、私は列挙型クラスを拡張することはできませんので。私は、その場合にはしかし、以下に示すインタフェース・ソリューションを考えていたよりも私は行うことはできません。
public class Cover<T implements CoverType>
を、私は最初の二つの列挙型ではなく第三ジェネリック型として受け入れるだけにCover
クラスをロックダウンすることができますどのように?
インタフェース:
public interface CoverType {}
まず列挙:
public enum FireCoverType implements CoverType {
SANITATION, RENTAL, GLASS
}
第二に列挙:
public enum CarCoverType implements CoverType {
ACCESSORIES, LEGAL_ASSISTANCE
}
第三に列挙:
public enum PaymentTerm {
MONTH, QUARTER, YEAR
}
カバークラス:
public class Cover<T> {
private T coverType;
// getter and setter
}
CarRequest:
public class CarRequest {
private Cover<CarCoverType> cover;
// getter and setter
}
時々、答えは本当に簡単です。私を助けてくれてありがとう! –
@MartijnBurger確かに:)あなたは大歓迎です! – Mena