gpt4 book ai didi

java - 是否可以指定在Java中运行哪个重载函数

转载 作者:行者123 更新时间:2023-12-03 20:26:16 24 4
gpt4 key购买 nike

给定方法:

String[] foo(int i){#doSomething;}

String[] foo(double i){#doesSomethingDifferent;}

是否可以这样写foo(int i){return foo(double d);}这样它就不会运行递归 foo(int i){return foo(int i);} ?

虽然我知道无论如何都不会推荐这样做,但我正在寻找哪些机制会允许或不允许这样做?

最佳答案

您可以尝试 String[] foo(int i){return foo((double) i);。通过这种方式,您可以明确告诉编译器从 foo(int i) 调用 foo(double d)。因此不会进行递归调用。

在重载的情况下,当使用某些参数调用方法时,编译器会尝试找到最适合传递的参数的方法。在你的情况下,如果你简单地调用 String[] foo(int i){return foo(i);},将调用 foo(int i) 版本,因为它是最适合传递的参数(int 类型)。这就是为什么要调用 foodouble 版本,您必须明确告诉编译器传递的参数是 double 类型。

关于java - 是否可以指定在Java中运行哪个重载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480406/

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