EnumSetを取り込み、Enumオブジェクトをセットに追加して、新しい変更されたEnumSetを出力するメソッドを作成したいとします。私はこのメソッドの署名を書く方法があまりよく分かりません。ブラウジングのビットの後、私は私の署名として、次のいる:署名の一般的なEnumSet
public <E extends Enum<E>> EnumSet<E> addIntervals(EnumSet<E> set)
をしかし、私は私の方法で設定された基準とき、私はそのEnumSetのに関連付けられているメソッドを使用することはできません。私はこれに正しく近づいていますか?
enum Week {
SUN(0), MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6)}
ここは私の列挙セットです。たとえば、空のEnumSetに奇妙な曜日を追加したいとします。
public <E extends Enum<E>> EnumSet<E> addIntervals(EnumSet<E> set) {
...
for (Week day : oddWeekDays) {
set.add(day);
セットはタイプEnumSetのを持っていなければならない、と私はWeek.MONまたはWeek.WEDのような週の奇数日を追加することができるはずです。ただし、IntelliJでは、「メソッド 'add'を解決できません」と表示されます。
おかげ
EDIT:
enum Month{
DAY_1(0), DAY_2(1) ... DAY_31(30)}
は、私は一般的にのいずれかで取ることができる関数を書くことができます:
それでは、私は週EnumSetの上に持っていると私は月EnumSetのを持っているとしましょうこれらのEnumSets? (E
がEnum
を拡張するため)
"自分のメソッドで参照設定"しようとしたコードを表示し、 "そのEnumSetに関連付けられたメソッドを使用できない"場合はどうなりますか。 –
1. 'E'は' Week'だとどう思いますか? 2.配列をとる 'Set.add()'はありません。 'addAll(Arrays.asList(array))'のようなものが必要です。 3. 'Week'は' DayOfWeek'となるべきものの名前を非常に混乱させます。 – shmosel
1.パラメータとして渡されたものが、どのような型Eが与えられているのか、私のメソッドで知りたい。 2. Enumを個別に追加したい場合はどうすればよいですか? Week.values()を無視します。 3.これは、私が欲しいものを実証しようとするための簡単な書き上げです。 –