Вы должны использовать Integer
вместо примитивного типа int
Вы не опубликовали достаточно кода, но ваше определение getX
метода должно быть:
Optional<Integer> getX()
вместо int getX()
.
Если вы не можете изменить класс с помощью метода, создайте класс-оболочку или что-то еще. Не видя весь код, я не могу сказать намного больше ...
РЕДАКТИРОВАТЬ:
Заставьте свой класс точек хранить дополнительные значения:
class Point
{
private Optional<String> x;
private Optional<String> y;
public Optional<String> getX () { //Here can not use Optional<String>
return this.x;
}
public Optional<String> getY () {
return this.y;
}
public Point(String x, String y) {
this.x = ofNullable(x);
this.y = ofNullable(y);
}
}
Тогда:
Point point = new Point(null, "14.2");
if(point.getX().isPresent()) {
this.xCoordinate = point.getX();
}
if(point.getY().isPresent()) {
this.yCoordinate = point.getY();
}