Я впервые попробовал использовать перечисление. Для некоторых тестов я хочу переопределить метод toString моего перечисления и вернуть String с выбранным перечислением.
Вот мой код:
@Override
public String toString()
{
return "Fahrzeuge{" +
switch(this)
{
case MOTORAD: "1"; break;
case LKW: "2"; break;
case PKW: "3"; break;
case FAHRRAD: "4"; break;
}
+
"typ:" + this.typ +
", ps:" + this.ps +
", reifen:" + this.reifen +
", gewicht:" + this.gewicht +
"}";
}
IntelliJ подчеркивает мои случаи и сообщает мне следующее: «Not a Statement» => Я думаю, это имеет смысл, если не разрешено строить String с переключателем - case.
Пока все хорошо, но кажется, что невозможно вернуть строку, созданную с помощью корпуса переключателя, или я сделал ошибку при возвращении? Есть ли другие варианты возврата выбранного перечисления? Я мог бы добавить атрибут, содержащий выбранное мной имя перечисления, но я мог бы сделать это немного проще.
Спасибо за помощь
type
,tires
,hp
,weight
, ...) - person Turing85   schedule 07.09.2019Enum
в класс. Вместе с некоторыми Builders вы можете добиться того же поведения, но более расширяемого (например, ваш список отсутствует Электросамокаты и танки ????) - person Turing85   schedule 07.09.2019toString()
-реализации вы начинаетеString
с"Fahrzeuge"
("vehicles"
, множественное число), ноString
фактически представляет только ОДИН"Fahrzeug"
("vehicle"
). - Атрибутreifen
(tires
): слишком общий. Это тип шин? Бренд? Количество? Будьте более конкретными, например, в вашем случае"anzahlReifen"
("numOfTires"
). - person Turing85   schedule 07.09.2019Enum
таким образом, и просмотрел ваш код. - person Turing85   schedule 07.09.2019