Convert old "into" code to the collectors
Marcos Antonio
marcos_antonio_ps at hotmail.com
Wed Jan 16 07:41:34 PST 2013
Here are the compiler error messages for the two case:
List<PropriedadeChavePai> propriedadesChavePai = new ArrayList<>();
chave.getPropriedadesChavePai().stream().
map(PropriedadeChavePai::new).
collect(Collectors.<PropriedadeChavePai>toCollection(propriedadesChavePai));
[javac] C:\desenvolvimento\desktop\desenvolvimento\br\desenvolvimento\dados\CriadorChave.java:259: error: method toCollection in class Collectors cannot be applied to given types;
[javac] collect(Collectors.<PropriedadeChavePai>toCollection(propriedadesChavePai));
[javac] ^
[javac] required: Supplier<C>
[javac] found: List<PropriedadeChavePai>
[javac] reason: actual and formal argument lists differ in length
[javac] where C,T are type-variables:
[javac] C extends Collection<T> declared in method <T,C>toCollection(Supplier<C>)
[javac] T extends Object declared in method <T,C>toCollection(Supplier<C>)
[javac] 1 error
--------------------------------------------------------------------------
List<PropriedadeChavePai> propriedadesChavePai = new ArrayList<>();
chave.getPropriedadesChavePai().stream().
map(PropriedadeChavePai::new).
collect(Collectors.<PropriedadeChavePai>toList(propriedadesChavePai));
[javac] C:\desenvolvimento\desktop\desenvolvimento\br\desenvolvimento\dados\CriadorChave.java:259: error: method toList in class Collectors cannot be applied to given types;
[javac] collect(Collectors.<PropriedadeChavePai>toList(propriedadesChavePai));
[javac] ^
[javac] required: no arguments
[javac] found: List<PropriedadeChavePai>
[javac] reason: actual and formal argument lists differ in length
[javac] 1 error
Marcos
----------------------------------------
> Date: Wed, 16 Jan 2013 15:05:22 +0000
> From: maurizio.cimadamore at oracle.com
> To: marcos_antonio_ps at hotmail.com
> CC: lambda-dev at openjdk.java.net
> Subject: Re: Convert old "into" code to the collectors
>
> On 16/01/13 14:34, Marcos Antonio wrote:
> > Hello, everybody!
> >
> > Before build b73 I had code like this:
> >
> > List<PropriedadeChavePai> propriedades = new ArrayList<>();
> >
> > chave.getPropriedadesChavePai().stream().
> > map(PropriedadeChavePai::new).
> > into(propriedades);
> >
> > Now I'm having trouble trying to convert it to use the new Collectors. I have tried something like this:
> >
> > chave.getPropriedadesChavePai().stream().
> > map(PropriedadeChavePai::new).
> > collect(Collectors.toCollection(propriedades));
> >
> > but it didn't work and I couldn't figure out the right thing to do.
> >
> > Thank you in advance.
> >
> > Marcos
> >
> What do you mean it didn't work? Did you get an error message from the
> compiler? If so, can you please paste it?
>
> Maurizio
More information about the lambda-dev
mailing list