我對列表操作的瞭解來自腳本語言。所以在Java中,我停止了一些奇怪的事情,以找到使用特定名稱的cookie。Java 8循環推理警告
List<Cookie> cookies = Arrays.asList(request.getCookies());
String auth = cookies.stream()
.filter(c -> c.getName().equals("auth"))
.map(Cookie::getValue);
在map
方法IntelliJ顯示我「循環推理」。
Java compiler Error:(52, 25) java: incompatible types: no instance(s) of type variable(s) R exist so that java.util.stream.Stream conforms to java.lang.String
正如消息所述,map將返回一個Stream,並且不能將其分配給String。你必須告訴它應該如何成爲一個單一的'字符串'。也許你想使用'.findAny()。get()'? – Holger 2014-10-17 09:47:01
不錯的問題和答案,但我仍然不知道循環推理是什麼!將繼續谷歌搜索,這是第一個結果。 – JimLohse 2016-02-22 20:01:55
@JimLohse這個答案解釋了什麼是循環推論:http://stackoverflow.com/a/36258012/3142816。基本上,內部子表達式的類型不能在沒有外部子表達式類型的情況下被推斷出來,如果沒有內部子表達式類型 – sorianiv 2016-06-02 09:58:49