Определите перечисление с тем же именем, что и класс - PullRequest
0 голосов
/ 06 апреля 2020

Итак, у меня есть класс с именем «Millis», в котором хранятся целые числа с именами «День», «Час», «Минута», «Секунда», «Миллисекунда», и мне нужен метод с именем «add», который может выполнять следующие операции:

Millis m4 = new Millis(21, 45, 52, 785, 15, 12, 2018); // [21:45:52.785] 15/12/18
m4.add(Millis.DAY, 16);// [21:45:52.785] 31/12/18
m4.add(Millis.HOUR, 2);// [23:45:52.785] 31/12/18
m4.add(Millis.MINUTE, 14);// [23:59:52.785] 31/12/18
m4.add(Millis.SECOND, 7);// [23:59:59.785] 31/12/18
m4.add(Millis.MILLISECOND, 214);// [23:59:59.999] 31/12/18

Как определить параметры метода добавить? я думал об использовании enum, но я не могу назвать enum с тем же именем, что и класс, или я не знаю обходного пути для этого.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

не уверен, нравится ли мне это, но это решение:

public class Millis {

    enum Field {
      DAY,
      // ...
    }

    public static final Field DAY = Field.DAY;
    // ...
}

enum можно даже объявить private

Примечание: enum может быть в собственном файле (классе), то есть не вложенном

0 голосов
/ 06 апреля 2020

Если вы настаиваете на том же имени, вы можете использовать вместо него конечные переменные.

public class Millis {
final int second =6;
final int minutes =3;
...
}

помните, что вы не можете изменить значение конечных переменных после присвоения значений.

Millis mill = new Millis(2,3,4);
int myNumber =millis.second;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...