当前位置: 首页 > 知识库问答 >
问题:

限制方法引用参数类型

薛淳
2023-03-14
Set<String> premiumStrings = new HashSet<>();
Set<String> sortedSet = new TreeSet<>(Comparator.comparing(premiumStrings::contains).thenComparing(Comparator.naturalOrder()));

这行不通,因为premiumStrings::contains可以接受任何对象,而不仅仅是字符串。可以将其替换为<代码>(字符串s)-

(具体来说,问题是方法then比较(比较器


共有1个答案

松旭
2023-03-14

帮助编译器了解一些类型:

Set<String> sortedSet = new TreeSet<>(
                Comparator.<String, Boolean>comparing(o -> premiumStrings.contains(o)).thenComparing(Comparator.naturalOrder()));
 类似资料:
  • 我有一个静态方法的类,如下所示: 如果我想打电话给Foo。foo并确保返回类型为,我可以说

  • 我刚开始使用Mockito,我正在验证某个方法应该用特定的参数调用,而所有的值类型参数(int、String、enum等)都可以验证,但引用/类类型参数似乎没有,下面是一个示例 那么,我如何将引用对象传递到我的输入方法中,并在这里将其模拟为我的内部方法的返回值呢?顺便说一句,如果我的方法只包含值类型参数,它将工作...

  • 问题内容: 在Java 8中,具有以下类 可以通过方法引用来调用setBornTrue方法: 但是我将如何使用forEach方法并通过 方法引用 使用setBorn ?试: 导致错误“无法解析方法setBorn”。 另外,我该如何传递True的值? 问题答案: 使用lambda: 没有发现仅使用Java 8 API的其他方法。 使用此自定义功能: 你可以做: 如果Java API或库中提供了这种实

  • 本文向大家介绍C#引用类型作为方法的参数分析,包括了C#引用类型作为方法的参数分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了C#引用类型作为方法的参数。分享给大家供大家参考。具体如下: 在c#或java中,参数传递都是传递的参数本身的值, 对于值类型,传递的是值本身。 对于引用类型,定义引用类型变量的时候,一个是在栈中的变量,存储的是一个指针,指向在堆中分配的对象实例的地址,当然,如

  • 我遇到了一个Java方法引用的用法,我不知道如何成功地编译和执行它。 我有以下: 是一个具有以下方法的接口: 我添加了一个,用于包含所有策略: 我不明白Java如何从转换为的实例: (1) 方法签名不匹配。(2) 是对接口的引用。 以下功能正常:

  • 相当于 因为在这种情况下,lambda参数与方法调用参数匹配。 然而对于这只小羊来说 例如,如果lambda有三个或更多的参数怎么办?那合法吗?是否第一个参数成为方法目标,其余的参数成为参数?