Compilation error with JDK8 and Guava

Sven Reimers sven.reimers at gmail.com
Tue Apr 2 04:20:58 PDT 2013


Hi Rémi,

do you think of the b83 lambda build? The early access at
http://jdk8.java.net/download.html still shows b82..

Thanks

Sven


On Tue, Apr 2, 2013 at 11:45 AM, Remi Forax <forax at univ-mlv.fr> wrote:

> On 04/02/2013 08:50 AM, Olivier Bourgain wrote:
> > Hi all,
> >
> > I tried to compile my project at work with the JDK 8 and I get a
> > compilation error.
> >
> > The simplest example which I was able to extract is the following. It
> uses
> > Guava 1.14.0.1.
>
> Hi Olivier,
> could you test with b83 because it looks like a bug that was fixed
> recently.
>
> cheers,
> Rémi
>
> >
> > import java.util.LinkedHashMap;
> > import java.util.List;
> > import java.util.Map;
> > import com.google.common.collect.Lists;
> >
> > public class TestCase {
> >
> >     public static <K, V> Map<K, V> reverseMap(List<Map.Entry<K, V>>
> list) {
> >        return toMap(Lists.reverse(list));
> >     }
> >
> >     public static <K, V> Map<K, V> toMap(List<Map.Entry<K, V>> list) {
> >        Map<K, V> result = new LinkedHashMap<>();
> >        for (Map.Entry<K, V> entry : list)
> >           result.put(entry.getKey(), entry.getValue());
> >        return result;
> >     }
> > }
> >
> > The compilation error is :
> >
> > » javac -cp lib/guava-14.0.1.jar src/TestCase.java
> > src/TestCase.java:9: error: method toMap in class TestCase cannot be
> > applied to given types;
> >        return toMap(Lists.reverse(list));
> >               ^
> >    required: List<Entry<K#1,V#1>>
> >    found: List<Entry<K#2,V#2>>
> >    reason: inferred type does not conform to equality constraint(s)
> >      inferred: Entry<Object,Object>
> >      equality constraints(s): Entry<Object,Object>,Entry<K#2,V#2>
> >    where K#1,V#1,K#2,V#2 are type-variables:
> >      K#1 extends Object declared in method
> > <K#1,V#1>toMap(List<Entry<K#1,V#1>>)
> >      V#1 extends Object declared in method
> > <K#1,V#1>toMap(List<Entry<K#1,V#1>>)
> >      K#2 extends Object declared in method
> > <K#2,V#2>reverseMap(List<Entry<K#2,V#2>>)
> >      V#2 extends Object declared in method
> > <K#2,V#2>reverseMap(List<Entry<K#2,V#2>>)
> > 1 error
> >
> >
> > The java version is :
> >
> > java version "1.8.0-ea"
> > Java(TM) SE Runtime Environment (build 1.8.0-ea-b82)
> > Java HotSpot(TM) Server VM (build 25.0-b23, mixed mode)
> >
> > The same code compiles without error with Java 1.7.
> >
> >
> > Olivier Bourgain
> >
>
>
>


-- 
Sven Reimers

* Senior Expert Software Architect
* NetBeans Dream Team Member: http://dreamteam.netbeans.org
* Community Leader  NetBeans: http://community.java.net/netbeans
                              Desktop Java:
http://community.java.net/javadesktop
* Duke's Choice Award Winner 2009
* Blog: http://nbguru.blogspot.com

* XING: https://www.xing.com/profile/Sven_Reimers8
* LinkedIn: http://www.linkedin.com/in/svenreimers

Join the NetBeans Groups:
* XING: http://www.xing.com/group-20148.82db20
* NUGM: http://haug-server.dyndns.org/display/NUGM/Home
* LinkedIn: http://www.linkedin.com/groups?gid=1860468
                   http://www.linkedin.com/groups?gid=107402
                   http://www.linkedin.com/groups?gid=1684717
* Oracle: https://mix.oracle.com/groups/18497


More information about the lambda-dev mailing list