Задать вопрос
@rogry_soft
Front-end or Java - Idk exactly Beginner

Как сделать так, чтоб enum.valueOf() возвращало нужное значение?

Привет. У меня есть три класса: Motorcycle, MotorcycleManager (main), Color (enum)

В классе Motorcycle у меня метод toString() а также заданы переменные:
public class Motorcycle {
	
	String name;
	int yearOfProduction;
	int price;
	int weight;
	Color color;
	String engineType;
	boolean isReadyToDrive;	
	
	public Motorcycle(String name, int yearOfProduction, int price, int weight, Color color, String engineType,
			boolean isReadyToDrive) {
		this.name = name;
		this.yearOfProduction = yearOfProduction;
		this.price = price;
		this.weight = weight;
		this.color = color;
		this.engineType = engineType;
		this.isReadyToDrive = isReadyToDrive;
	}



	@Override
	public String toString() {
		return "Motorcycle [name=" + name + ", yearOfProduction=" + yearOfProduction + ", price=" + price + ", weight="
				+ weight + ", color=" + color + ", engineType=" + engineType + ", isReadyToDrive=" + isReadyToDrive
				+ "]";
	}
}


Класс MotorcycleManager это у меня main, с него запускаю с использованием конструктора:
public class MotorcycleManager {

	public static void main(String[] args) {
		
		Motorcycle suzuki = new Motorcycle("Suzuki GSX-R1000", 2021, 16000, 600, Color.BLACK, "diesel", true);
		Motorcycle yamaha = new Motorcycle("Yamaha FZ1", 2007, 9000, 700, Color.ORANGE, "gas", false);
		
		
		System.out.println(suzuki);
		System.out.println(yamaha);
	}
}


В классе enum Color прописаны константы:
public enum Color {
	
	WHITE, GREEN, BLACK, BLUE, ORANGE
	
}


Мне нужно доработать код так, чтобы в консоли выводился цвет не капсом, использовав методы enum.valueOf(), String.toUpperCase(), String.replace

Посоветуйте как этого добиться и/или где почитать про это, чтоб было понятно и четко расписано.
  • Вопрос задан
  • 306 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
BorLaze
@BorLaze
Java developer
enum Color {
    WHITE("white"), BLACK("black");

    private final String color;

    Color(String color) {
        this.color = color;
    }


    @Override
    public String toString() {
        return color;
    }
}


Color c = Color.WHITE;
System.out.println(c);


Результат - white

-----

не знаю, правильно ли я понял твой вопрос, но, в любом случае, направление такое
Ответ написан
Комментировать
@Iskak9
Студент, любитель пк
Переопределяешь toString и всё.
public enum Color {
    WHITE, GREEN, BLACK, BLUE, ORANGE;
    
    @Override
    public String toString() {
        return name().charAt(0) + name().substring(1).toLowerCase();
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы