- Лучшее из объектов значащего типа< /strong> (в Java это будет @Value или, в последнее время, просто запись), чтобы избежать «примитивной одержимости» и передавать простые оболочки значений, с дополнительным преимуществом потенциального выполнения некоторой дополнительной проверки в их конструктор.
- Лучшее из неявных преобразований типов (например, если ваш тип значения является оболочкой вокруг Integer, вы все равно можете передать его туда, где Integer будет пройден)
Пример:
Код: Выделить всё
public record PositiveInteger(Integer value) {
public PositiveInteger{
if (value < 0) {
throw new IllegalArgumentException();
}
}
}
...
public static printInteger(final Integer someInteger) {
print(someInteger.toString());
}
...
public static void main() {
Integer i = 1234;
printInteger(i);
PositiveInteger x = new PositiveInteger(6789);
printInteger(x); //
Подробнее здесь: [url]https://stackoverflow.com/questions/79054995/using-java-records-or-value-types-to-enhance-integer-or-long[/url]