私は、検索クエリパラメータを構築して転送するために、複数のsearch-DTO-Classを作成しようとしています。利用可能なパラメータは、オブジェクトのデータベーステーブルに依存します。 これにより、すべてのDTOクラスに対して1つだけEnum
を持つことはできません。その結果、各DTOクラスは独自のEnum
の検索可能なパラメータを持ちます。インタフェースまたは抽象クラスにまだ存在しないenumの一般的な使用
検索パラメータの実際のコレクションは、EnumMap
(インテイジェライズされていますが、空です)です。それぞれの検索DTOクラスにgetter
,put
、removeParameter
というメソッドを持っています。
これら3つのメソッドはすべてのDTOクラスで論理は同じですが、戻り値の型は異なります(マップ)。だから私の質問は:
これらの3つの関数を宣言することは可能ですか? 私はどんなsearch-DTO-Classによって実装されるべきインタフェースについても持っています。しかし、私は個々の目的に合致しないワイルドカードで作業する必要があります。Enum
例コード:
public class LocationSearchParametersDTO
{
public enum LOCATION_PARAMETER
{
ID("id");
private String queryParam;
private LOCATION_PARAMETER(String queryParam){ this.queryParam=queryParam; }
public String getQueryParam(){ return queryParam; }
}
private final Map<LOCATION_PARAMETER, String> searchParameters = new EnumMap<>(LOCATION_PARAMETER.class);
public Map<LOCATION_PARAMETER, String> getParameters(){ return Collections.unmodifiableMap(searchParameters); }
public void put(LOCATION_PARAMETER param, String value){ searchParameters.put(param, value); }
public void removeParameter(LOCATION_PARAMETER param){ searchParameters.remove(param); }
}
私はあなたが車輪の再発明している感覚を持っています。 – assylias
となる場合があります。あなたの印象を詳述してください。 –
DTOがデータベーステーブルの純粋な「コピー」である場合、それらを自動生成するツールを使用すると時間を節約できます。 – assylias