Странная проблема с API потоков Java ⇐ JAVA
-
Гость
Странная проблема с API потоков Java
У меня возникла странная ошибка с потоками Java со следующим кодом ниже -
public Set getErrorCodes() { вернуть ограничениеViolations.stream() .map(ConstraintViolation::getConstraintDescriptor) .map(ConstraintDescriptor::getPayload) .map(ErrorCode::fromPayloads) .flatMap(Collection::stream) //-> Ошибка здесь говорит о том, что невозможно преобразовать объект в поток как исключение времени выполнения. .collect(Collectors.toSet()); } Однако следующий код работает, я действительно не понимаю, почему это происходит! Я использую Java 11
Stream setStream = ограничениеViolations.stream() .map(ConstraintViolation::getConstraintDescriptor) .map(ConstraintDescriptor::getPayload) .map(ErrorCode::fromPayloads); return setStream.flatMap(this::convertToStream).collect(Collectors.toSet()); /** * Это помогает компилятору узнать, какой тип имеет поток. * Это ИСПРАВЛЕНИЕ! * ввод @param * @возвращаться */ частный Stream ConvertToStream (Set input) { вернуть input.stream(); } Дополнительная информация: constraintViolations определяется как
частный набор
У меня возникла странная ошибка с потоками Java со следующим кодом ниже -
public Set getErrorCodes() { вернуть ограничениеViolations.stream() .map(ConstraintViolation::getConstraintDescriptor) .map(ConstraintDescriptor::getPayload) .map(ErrorCode::fromPayloads) .flatMap(Collection::stream) //-> Ошибка здесь говорит о том, что невозможно преобразовать объект в поток как исключение времени выполнения. .collect(Collectors.toSet()); } Однако следующий код работает, я действительно не понимаю, почему это происходит! Я использую Java 11
Stream setStream = ограничениеViolations.stream() .map(ConstraintViolation::getConstraintDescriptor) .map(ConstraintDescriptor::getPayload) .map(ErrorCode::fromPayloads); return setStream.flatMap(this::convertToStream).collect(Collectors.toSet()); /** * Это помогает компилятору узнать, какой тип имеет поток. * Это ИСПРАВЛЕНИЕ! * ввод @param * @возвращаться */ частный Stream ConvertToStream (Set input) { вернуть input.stream(); } Дополнительная информация: constraintViolations определяется как
частный набор
Мобильная версия