新的语法还是拼写错误?

时间:2013-05-29 09:32:02

标签: java junit

这里,https://github.com/junit-team/junit/wiki/Assertions,请看:

public void testAssertThatHamcrestCoreMatchers() {
    assertThat("good", allOf(equalTo("good"), startsWith("good")));
    assertThat("good", not(allOf(equalTo("bad"), equalTo("good"))));
    assertThat("good", anyOf(equalTo("bad"), equalTo("good")));
    assertThat(7, not(CombinableMatcher.<Integer> either(equalTo(3)).or(equalTo(4))));
    assertThat(new Object(), not(sameInstance(new Object())));
}

在第5行,CombinableMatcher.<Integer>有效吗?我尝试用java6,失败了。 这是一个新的语法还是简单的错字?

1 个答案:

答案 0 :(得分:0)

public static void main(String[] args) {
    java.util.ArrayList<Box<Integer>> listOfIntegerBoxes =
      new java.util.ArrayList<>();
    BoxDemo.<Integer>addBox(Integer.valueOf(10), listOfIntegerBoxes);
    BoxDemo.addBox(Integer.valueOf(20), listOfIntegerBoxes);
    BoxDemo.addBox(Integer.valueOf(30), listOfIntegerBoxes);
    BoxDemo.outputBoxes(listOfIntegerBoxes);
  }
  

泛型方法addBox定义了一个名为U的类型参数。通常,Java编译器可以推断泛型方法调用的类型参数。因此,在大多数情况下,您不必指定它们。例如,要调用泛型方法addBox,可以按如下方式指定type参数:

BoxDemo.<Integer>addBox(Integer.valueOf(10), listOfIntegerBoxes);

来源:http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html