gpt4 book ai didi

java - 在重载方法中传递 null 作为参数?

转载 作者:行者123 更新时间:2023-12-01 06:37:22 28 4
gpt4 key购买 nike

Java 中有一种针对以下类型问题的解决方案:具有一个参数不同的重载方法。如果不同的参数作为 null 传入,会怎样?

class PersonFactory {
public static Person create(String firstname, String lastname, String age) {
return create(firstname, lastname, Integer.valueOf(age));
}

public static Person create(String firstname, String lastname, Integer age) {
Person p = new Person();
p.setFirstname(firstname);
p.setLastname(lastname);
p.setAge(age);
return p;
}
}

PersonFactory.get("John", "Doe", null); //ambigous mapping

我认为可以在这里传递一个 Optional.empty() ,但它没有定义类型,因此不能用于选择正确的方法...

最佳答案

您需要将 null 转换为您想要的类型,以便编译器可以解决歧义。

例如:

PersonFactory.get("John", "Doe", (String) null);

PersonFactory.get("John", "Doe", (Integer) null);

关于java - 在重载方法中传递 null 作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56889168/

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