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

如何修复方法引用上的不明确类型(整数的toString)?

鲜于宏义
2023-03-14
Stream.of(1, 32, 12, 15, 23).map(Integer::toString);

共有1个答案

袁泰
2023-03-14

没有办法使方法引用明确;简单地说,方法引用是只支持明确的方法引用的特性。所以你有两个解决方案:

>

  • 使用lambda表达式:

    Stream.of(1, 32, 12, 15, 23).map(i->Integer.toString(i));
    

    (至少对我来说是首选)当源仅包含基本int值时,使用基本int值流:

    IntStream.of(1, 32, 12, 15, 23).mapToObj(Integer::toString);
    

  •  类似资料:
    • 问题内容: 这样做时 我收到一个模棱两可的类型错误。可以理解的是,编译器无法确定我是指还是from 。 当不使用方法引用时,我可能会通过显式转换来摆脱这种情况,或者长时间写出泛型,但是如何让编译器知道我的意思呢?我可以使用什么语法(如果有)来明确表达? 问题答案: 没有方法可以使方法引用明确。简而言之,方法引用是仅明确的方法引用才支持的功能。因此,你有两种解决方案: 使用lambda表达式: (至

    • 我编写了这个方法,检查下一个数组的索引数中是否包含一个数字,如果至少有一个数字是下一个数组的一部分,它将进入计数器,如果计数器的值大于0,它将进入一个变量“check”,该变量将等于true。 有一个索引为false就足以使整个数组为false。 例如,根据我构建的方法正确的数组:int[]arr={12,527,71,114,49,190}; 这就是方法的解释。现在来解决我的问题。这个方法只适用

    • 考虑以下简化的测试用例: 使用来自Oracle JDK 8u40的javac编译时,可以使用lambda调用,但传递方法引用的调用被拒绝,错误如下: 我不明白为什么重载在这里可能适用。来自JLS15.12.2.1(省略了一些项目符号): 成员方法可能适用于方法调用当且仅当以下所有为真: 如果成员是一个固定的属性方法,属性为n,则方法调用的属性等于n,并且对于所有i(1≤i≤n),方法调用的第i个参

    • 数据: 法典: 直方图模式: 例外: 虽然我明白为什么会发生这种情况,但我不知道如何解决这个问题。数据集是从数据库中的表创建的,可以包含任意数量的具有任意名称的列,包括< code>count 、< code>avg和其他“保留”字。 任何帮助。

    • 问题:评估项目':app'时出现问题。 方法:build_dxc6m5s863o0nfrfjdg2bqjp.android()的签名不适用于参数类型:(build_dxc6m5s863o0nfrfjdg2bqjp$_run_closure1)值:[build_dxc6m5s863o0nfrfjdg2bqjp$_run_closure1@18112963] 分级文件:

    • 我是Java泛型新手。我正在设计DAO层。我将JPA用于Spring。我有一个BaseDAO,它被所有其他DAO类扩展。 我在向此类添加公共列表执行NativeQuery(String queryString, Map参数)时遇到问题。因为如果我必须在扩展BaseDAO的类A中使用此方法,我将不得不为Base Class指定类型参数“E”和“Id”。理想情况下,type参数应该是我们要对其进行db