2017-08-08 5 views
-1

私はこのようなConcurrentHashMapのの検索を使用しています:Iambda表現コンパイルエラー

map.search(1, (k, v) -> { 
    return v.size() > 10 ? k : null; 
}); 

しかし、私はそれは私にコンパイルエラーを与える括弧削除する場合:

map.search(1, (k, v) -> 
    return v.size() > 10 ? return k : null; 
); 

を、それが単一であるため、私は括弧を削除したいですラムダ式の文。

アップデート:修正誤植

+2

また、 'return'も削除してください。 https://stackoverflow.com/questions/11145696/when-are-braces-optional-in-java-8-lambda-syntax – jensgram

+1

お試しください: ' - > v.size()> 10? k:null' –

+0

@jensgramはい正確に問題でした! – Vipin

答えて

1

2つのreturn文があるとして、あなたは上記の投稿のように、あなたは括弧を持つことができ、次のいずれか

map.search(1, (k, v) -> { 
return v.size() > 10 ? return k : null; 
}); 

それとも、他のリターンを削除する必要があります。

map.search(1, (k, v) -> { 
return v.size() > 10 ? k : null; 
}); 

詳細については、次のリンクをご覧ください。

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax