Метод __int__
в Python позволяет class
подключаться к функциональности int()
, встроенной в язык - для "разбора" экземпляра произвольного class
на int
.
В Java нет эквивалента, но вы можете создать похожую конструкцию.Это потребовало бы, чтобы вы были явными.
public class Robot {
private int serial;
//ctor, getters, setters etc etc
public int toInt() {
return serial;
}
public static int toInt(Robot robot) {
return robot.toInt();
}
}
Тогда вы можете сделать что-то вроде
//some class, synax elided
import static com.pkg.Robot.toInt;
System.out.println(toInt(new Robot()));
Поскольку в Java нет функциональности int()
, это на самом деле не дает вамнамного больше:
System.out.println(new Robot().toInt());
Или даже гораздо более понятное:
System.out.println(new Robot().getSerial());
Если вы хотите что-то более общее, вы можете создать interface
:
public interface Intable {
int toInt();
}
Тогда вы можете implements
Interface
в классах, которые, по вашему мнению, должны превратиться в int
.