У меня есть ArrayList
из Car
объектов. Я проверяю нулевые значения и Germany
и что-то делаю внутри условия if
.
Но я хочу использовать Optional
класс, чтобы избежать проверки на ноль. Как я могу использовать это?
Вот мой код:
public class TestOptional {
public static List<Car> getCarList() {
List<Car> carList = new ArrayList<Car>();
carList.add(new Car("Benz", 2016, "Germany"));
carList.add(new Car("Rolls Royce", 2015, "Russia"));
carList.add(new Car("BMW", 2017, null));
carList.add(new Car("Maruti", 2014, ""));
return carList;
}
public static void main(String args[]) {
List<Car> carList1=getCarList();
for(Car c:carList1) {
if(c.getCountry() != null && c.getCountry().equalsIgnoreCase("Germany")) {
System.out.println(c.getCarName()+" car is from Germany");
}
}
Optional<Car> optional = getCarList();
}
}
Я получаю эту ошибку:
`Type mismatch: cannot convert from List<Car> to Optional<Car>`
Я не уверен, как использовать класс Optional
для List
объектов.
Пожалуйста, найдите мой код автомобиля:
public class Car {
private String carName;
private int year;
private String country;
public Car(String carName, int year, String country) {
this.carName = carName;
this.year = year;
this.country = country;
}
public String getCarName() {
return carName;
}
public int getYear() {
return year;
}
public String getCountry() {
return country;
}
}
** Обновление 1 **
Я начал изучать некоторые функции Java8, нашел класс Optional
и хочу его использовать. Я нашел использование Optional
класса.
В Java 8 у нас есть новый класс Optional в пакете java.util. Этот класс введен, чтобы избежать исключения NullPointerException, с которым мы часто сталкиваемся, если не выполняем нулевые проверки в нашем коде. Используя этот класс, мы можем легко проверить, имеет ли переменная нулевое значение или нет, и, делая это, мы можем избежать исключения NullPointerException.
Итак, я попытался применить необязательный класс для моего ArrayList, и я хочу избежать проверки на нуль всех моих объектов в моем ArrayList.
List<Car> carList1=getCarList();
for(Car c:carList1) {
if(c.getCountry() != null && c.getCountry().equalsIgnoreCase("Germany")) {
System.out.println(c.getCarName()+" car is from Germany");
}
}
В приведенном выше коде я проверяю нулевое значение для объекта страны. Поэтому здесь я хочу избежать написания нулевого контрольного кода (с использованием необязательного класса).