方法参考中的参数

Vin*_*osi 4 java lambda java-8 method-reference

是否可以使用方法参考传递参数?例如,我必须创建一个TreeMap但使用reverseOrder().有类似TreeMap::new(reverseOrder())存在吗?

Era*_*ran 6

不,你不能用方法参考来做.

您可以使用lambda表达式:

() -> new TreeMap<TheRelevantType>(reverseOrder())
Run Code Online (Sandbox Code Playgroud)

要么

() -> new TreeMap<>(reverseOrder())
Run Code Online (Sandbox Code Playgroud)

如果您在编译器可以推断出元素类型的上下文中使用此表达式TreeMap.

  • 原始类型,真的吗? (2认同)

Eug*_*ene 5

你需要一个lambda表达式......你可能正在考虑Supplier:

() -> new TreeMap<>(Comparator.reverseOrder())
Run Code Online (Sandbox Code Playgroud)