incompatible types compile error
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Mon Nov 19 05:37:46 PST 2012
The problem is that, since you are using Comparable (note the absence of
type-parameters) you are effectively triggering an uunchecked conversion
there - the result would be that the erased signature of 'into' will be
used instead - that is, the return type of into will be simply
Destination - not the type inferred from the argument - hence the
incompatible types error.
Btw - I'm getting the error for both versions of the example you sent.
Maurizio
On 16/11/12 23:01, Arul Dhesiaseelan wrote:
> This works, btw.
>
> List<Album> sortedFavs = new ArrayList<Album>();
> albums.stream()
> .filter(a -> a.tracks.stream().anyMatch(t -> (t.rating >= 4)))
> .sorted(comparing((Mapper<Comparable, Album>) album ->
> album.name))
> .into(sortedFavs);
>
>
>
> On Fri, Nov 16, 2012 at 12:38 PM, Remi Forax <forax at univ-mlv.fr> wrote:
>
>> On 11/16/2012 10:57 PM, Arul Dhesiaseelan wrote:
>>> Hi,
>>>
>>> I am trying to run a slightly modified version from the latest State of
>> the
>>> Lambda libraries edition.
>>>
>>> List<Album> sortedFavs =
>>> albums.stream()
>>> .filter(a -> a.tracks.stream().anyMatch(t -> (t.rating >=
>> 4)))
>>> .sorted(comparing((Mapper<Comparable, Album>) album ->
>>> album.name))
>>> .into(new ArrayList<Album>());
>>>
>>> java: incompatible types: java.util.stream.Stream.Destination cannot be
>>> converted to java.util.List<Album>
>>>
>>> Any idea what could be wrong here?
>> the signature of the method into.
>>
>>> -Arul
>>>
>> Rémi
>>
>>
>>
More information about the lambda-dev
mailing list