public<U> Optional<U> map(Function<? super T, ? extends U> mapper)
почему нас двое?
Я понимаю, что второй U ... Дополнительный имеет параметр, описывающий вид возвращаемого Дополнительного.
Но я не понимаю, о чем ведущий U. Я борюсь с вызовом на карте необязательный метод со следующим:
[javac] return LocationAPIResponse.map(response -> Context.LocationContext.builder()...
[javac] ^
[javac] no instance(s) of type variable(s) U exist so that Optional<U> conforms to LocationContext
[javac] where U,T are type-variables:
[javac] U extends Object declared in method <U>map(Function<? super T,? extends U>)
[javac] T extends Object declared in class Optional
Я запутался, потому что функция, которую я определяю в карте, возвращает LocationContext, созданный компоновщиком. Я смущен двумя 'U'. Почему компилятор жалуется
редактировать, конкретизировать пример кода, чтобы быть более полным:
Optional<LocationServiceResponse> locationAPIResponse = locationServiceProxy.getLocation(locationServiceRequest);
return locationAPIResponse.map(response -> Context.LocationContext
.builder()
.isNearby(response.getProximity().equals(ProxyEnum.NEARBY) ? 1 : 0)
.lat(response.getLatitude().orElse(0))
.lng(response.getLongitude().orElse(0))
.build());