2015-11-09 87 views
0

我找到的所有示例都使用其他類型信息來推斷Stream.empty()的類型。似乎應該有語法來讓我直接投射它。這個例子的工作原理:如何在Java 8中投射Stream.empty()?

import java.util.*; 
import java.util.stream.*; 

class OptionalBasics { 
    static void test(Optional<String> optString) { 
     if(optString.isPresent()) 
      System.out.println(optString.get()); 
     else 
      System.out.println("Nothing inside!"); 
     } 
    public static void main(String[] args) { 
     Stream<String> s = Stream.empty(); 
     test(s.findFirst()); 
     test(Stream.of("Epithets").findFirst()); 
    } 
} 
/* Output: 
Nothing inside! 
Epithets 
*/ 

但是請注意,我不得不以提供類型信息Stream.empty()單獨創建s。我想在調用只需創建它 test(),這樣的事情(不工作):

test(Stream<String>.empty().findFirst()); 

是否有在調用Stream.empty()設置類型語法?

回答

13

你只是在錯誤的地方括號。嘗試Stream.<String> empty().findFirst())

+0

優秀 - 非常感謝! – user1677663