【发布时间】:2018-10-03 18:58:22
【问题描述】:
例如,我有一个用户类
public class User{
public void createInfo(String username, int age, string address){
JSONObject json = new JSONObject();
json.put("username", "xxxx");
json.put("age", 20);
json.put("address", "xxxxxx");
System.out.print(json.toJSONString());
}
public static void main(String[] args) {
User user = new User();
user.createInfo("xxxx", 11, 112222);
}
}
对于用户名、年龄和地址,它们是该方法的必填字段。现在我想在这个结果中添加一些可选字段。 例如,我想添加一个 phoneNumber 字段。如何做到这一点
user.createInfo("xxxx", 11, 112222).addPhoneNumber(1234566)
那么电话号码会添加到json数据中吗?
【问题讨论】:
-
java中没有可选参数。你必须重载它并调用最后一个并做你需要的额外事情。
-
你的意思是唯一的方法是 createInfo(String username, int age, string address, int phoneNumber)
-
是的。然后调用 createInfo() 为您做一些工作,而不是复制代码并做额外的工作。最好将 JSONObject 作为对象的结果返回,这样您就可以轻松创建第二个
createInfo(),并且它与其名称更相关。在方法中打印一些东西是不好的。在其他地方打印你想要的,因为也许你不想立即打印一些东西。如果你想添加更多可选参数,也许使用像@AndrewTobilko 这样的技术很好。您也可以使用 Map.of 等新功能来发送参数。 -
你可以使用builder模式
标签: java parameters parameter-passing