Вы не можете перегрузить оператор приведения.Java не поддерживает это и, вероятно, никогда не будет.
Чтобы преобразовать одно значение в экземпляр нужного класса, мы используем статические фабричные методы.
public static Person fromAge(int age) {
return new Person(age);
}
Они частовернуть частично построенный объект.В приведенном выше фрагменте у недавно созданного человека установлено только age
: для других полей будут заданы значения по умолчанию.
Для обратного мы используем геттеры.
public int getAge() {
return age;
}
Однако, поскольку toString
уже существует, имеет смысл добавлять и другие типы данных.
toInt
не имеет смысла, когда он применяется ко мне (как примерPerson
класс).Это может быть мой рост, мой вес, мой возраст, количество раз, когда я сегодня ходил в ванную, и т. Д. Я не могу представить себя одним целым числом, как и большинство классов.
С другой стороны, toString
может выполнять эту работу довольно хорошо: я могу дать вам (читай return ) краткую информацию о моих хобби, моей биометрической информации, даже моей фотографии.Или я могу оставить это для реализации по умолчанию, которая все еще удовлетворительно представляет объект.