Как я могу обобщить метод преобразования устройства для различных перечислений в Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу обобщить метод преобразования устройства для различных перечислений в Java?

Сообщение Anonymous »

В настоящее время я строю приложение для преобразователя единиц в Java (как новичок), и я хочу избежать дублирующейся логики для каждого типа единицы. These enums all implement a common Units interface:

Код: Выделить всё

public interface Units {}

public enum Length implements Units {
METRE(1.0), KILOMETRE(1000), CENTIMETRE(0.01), ...;

private final double toMetreFactor;

Length(double factor) {
this.toMetreFactor = factor;
}

public double getToMetreFactor() {
return toMetreFactor;
}
}
< /code>
В моем классе Convertermodel у меня в настоящее время есть такие методы: < /p>
public double convertLength(double value, Length input, Length output) {
double base = value * input.getToMetreFactor();
return base / output.getToMetreFactor();
}
< /code>
Но это означает, что мне нужно написать аналогичные методы для каждой категории (конверт, преобразование времени и т. Д.).public double convert(double value, Units from, Units to);

У меня уже есть мой графический интерфейс с jcombobox, поэтому я передаю выбранные единицы в качестве единиц. Тем не менее, я не могу получить доступ к коэффициенту преобразования, если только я не подтолкнулся к конкретному переводу (например, длине), который кажется неуклюжим и не расширяемым. Или я могу как -то сделать метод преобразования (...) универсальным?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ms-in-java

Вернуться в «JAVA»