2016-08-26 2 views
0

Я пишу этот код для Spark, он компилируется и работает нормально, но intellij-idea жалуется на «плохой возвращаемый тип в выражении лямбда».
код:intellij идея жалуется на «неправильный тип возврата в выражении лямбда», но код компилируется отлично

Map<String, List<Batch>> hubCode2BatchMap = wdBatchRdd.map(Batch::new) 
      .mapToPair(batch -> new Tuple2<>(batch.getHubCode(), batch)) 
      .combineByKey(this::createCombiner, (list1, batch) -> { 
       list1.add(batch); 
       return list1; 
      }, (list1, list2) -> { 
       list1.addAll(list2); 
       return list1; 
      }) 
      .collectAsMap(); 

picture

мой проект установки уровня Язык "8 - Лямбда, аннотации типа и т.д." И я использую intellij 2016.2.2.

+0

какая у вас новая версия? –

+0

IntelliJ IDEA 2016.2.2 Сложение # IU-162.1628.40, не построен 16 августа 2016 Подписка активна до 25 февраля 2017 года JRE: 1.8.0_65-b17 amd64 JVM: Java HotSpot (TM) 64-Bit Сервер VM от Oracle Corporation – fuyun

+0

Что такое линия? Для меня обновление до 2016 года с 2014 года устраняло все эти проблемы. –

ответ

0

это ошибка ошибки. этот код может вызвать эту ошибку:

package com.oasis.wyvern.spark.common.util; 

import org.apache.spark.api.java.JavaRDD; 
import org.apache.spark.api.java.function.PairFunction; 
import scala.Tuple2; 

import java.util.Map; 

public class BugTest { 
    private static void test1(JavaRDD<String> rdd) { 
     // this line will be report error 
     rdd.mapToPair(xx -> new Tuple2<>(xx.length(), xx)); 
    } 
    private static void test() { 
     // this line will be report error 
     new BugClass<String>().testBug(xx -> new Tuple2<>(xx.length(), xx)); 
    } 
    private static class BugClass<E> { 
     <T1, T2> Map<T1, T2> testBug(PairFunction<E, T1, T2> func) { 
      return null; 
     } 
    } 
} 
Смежные вопросы