gpt4 book ai didi

java - Java中的方法引用是如何解析的

转载 作者:行者123 更新时间:2023-12-04 10:15:18 26 4
gpt4 key购买 nike

Function<String, Integer> f = Integer::new;

Integer i = f.apply("100");

这将如何使用 Integer.parseInt当我们打电话时 f.apply ?

最佳答案

我猜你的问题是:“javac 怎么知道在这里调用 parseInt”?

您的代码段已损坏;泛型脱落了。照原样,您的代码将无法编译,因为引用不明确。如果您重新添加它,它将编译并正常工作:

Function<String, Integer> f = Integer::new;
Integer i = f.apply("100");

忘记新 ::语法或 Function部分;他们是红鲱鱼。

所以让我们让它更简单:
Integer i = new Integer("100");
那是有效的java;我最终会持有值(value) 100。

它起作用是因为......那个构造函数存在。它精确地充当 Integer.parseInt基数为 10 作品,但它已被弃用,原因有二:[A] 调用 new Integer()根本不推荐使用任何值(使用 Integer.valueOf ),并且 [B] 只需调用 parseInt。

关于java - Java中的方法引用是如何解析的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61090586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com