Код: Выделить всё
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