2015-11-09 41 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