Обертывание объектов не принято по той причине, которую вы указали в Java.Но это возможно.
Вместо использования extends Double
(что не работает, потому что Double является окончательным).Вместо этого вы можете использовать делегирование.
public class Distance {
private double distance;
// constructor, getter, setter
}
public class Temperature {
private double temp;
// constructor, getter, setter
}
Тогда следующее сгенерирует ошибку во время компиляции.
Temperature temp = new Temperature(20.0);
Distance distance = temp; // Illegal!