Java 方法的参数可以有默认值吗?

例如

void method(String p1, int p2, bool p3=false);

回答

Java不支持这种特性,

如果你真的有需求,你可以

通过方法的重载间接的支持默认的参数值

使用工厂模式

重载

这个很简单

void method(String p1, int p2, bool p3){

// ....

};

void method(String p1, int p2){

bool p3 = false;

// ...

};

这样就相当于给p3一个默认的参数值。

但是有的时候如果参数太多,就不适合了。

就要用到下面的工厂方法

工厂方法

public class StudentBuilder

{

private String _name;

private int _age = 14; // this has a default

private String _motto = ""; // most students don't have one

public StudentBuilder() { }

public Student buildStudent()

{

return new Student(_name, _age, _motto);

}

public StudentBuilder name(String _name)

{

this._name = _name;

return this;

}

public StudentBuilder age(int _age)

{

this._age = _age;

return this;

}

public StudentBuilder motto(String _motto)

{

this._motto = _motto;

return this;

}

}

Student s1 = new StudentBuilder().name("Eli").buildStudent();

Student s2 = new StudentBuilder()

.name("Spicoli")

.age(16)

.motto("Aloha, Mr Hand")

.buildStudent();

在上面的示例中,我们没有直接

的创建一个Student对象,而是

通过StudentBuilder来创建一个工厂,

然后在这个工厂中预先设定了一些模板,

为什么要创建一个StudentBuilder

而不是直接这样写:

Student s1 = new Student().age(16)

这样写有两个坏处

实例化有些字段没有初始化,可能存在

安全隐患

很多时候,我们创建一个Student之后,并不希望他有一个.age()方法,这个方法可能会被滥用。

java 默认参数_Java 方法的参数可以有默认值吗?相关推荐

  1. java 输出参数_Java方法输出参数

    在写Java代码的时候,自定义方法的时候,都会牵扯到参数问题,方法参数包括输出参数和输入参数. 下面主要说说输出参数: 1.没有输出参数的时候就直接把输出参数写成void就可以. 2.当输出参数只有一 ...

  2. java方法的参数_Java方法参数

    Java方法参数 在程序设计语言中如何将参数传给方法(或函数): 按值调用:方法接受的是调用者提供的值 按引用调用:方法接受的是调用者提供的地址 Java程序设计语言总是采用按值调用(方法得到的是所有 ...

  3. java方法传对象参数_Java方法中的参数太多,第2部分:参数对象

    java方法传对象参数 在上一篇文章中 ,我研究了与方法和构造函数的长参数列表相关的一些问题. 在那篇文章中,我讨论了用自定义类型替换基元和内置类型以提高可读性和类型安全性. 这种方法使方法或构造函数 ...

  4. java 方法体 out 参数_Java方法详解

    方法详解 1.方法的定义 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问题的步骤的有序组合,包含于类或对象中:在程序中被创建,在其它地方被引用 设计方法的原则:要遵守原子性,即一个 ...

  5. JAVA通过反射获取方法真实参数名

    默认情况下,我们是无法获取到方法中参数的名称,通过反射机制也只能获取到类似于arg0,arg1这样表示参数顺序的"参数名" 这样当我们需要使用方法的实际参数时,比方说spring自 ...

  6. java中equals方法的参数_equals方法的参数必须为Object类型的引用变量

    核心结论:子类重写Object类的equals方法需要注意的事项 重写的时候一定要注意equals方法的参数是Object obj类型的引用变量.绝对不可以是其他类型的变量.因为这样的话,和父类Obj ...

  7. java 什么是参数_java中的参数是什么?

    本篇文章介绍了Java中什么是参数,以及参数的两种类型及他们之间的关系,希望对学习Java开发的同学有帮助. java中的参数是什么? 参数分两种:一种叫形式参数,一种叫实际参数 方法名后面括号里面用 ...

  8. java args用法_Java中args参数数组的用法说明代码

    本篇文章小编给大家分享一下Java中args参数数组的用法说明代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. main方法args参数用于接收用户 ...

  9. java实验楼使用说明_Java 方法

    Java 方法 一.实验介绍 1.1 实验内容 本实验将学习Java方法的定义与语法规则.方法重载以及参数与返回值的相关内容. 1.2 实验知识点 方法的定义 方法重载 参数与返回值 1.3 实验环境 ...

最新文章

  1. [图]吴恩达AI公司Drive.ai或已找到新买家--苹果
  2. Linux内核分析 - 网络[六]:网桥
  3. resultMap和resultType的区别
  4. 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...
  5. flask and html connection
  6. ASP.NET Core 中基于工厂的中间件激活
  7. java解析消息头代码_javaWeb项目-文件下载的消息头和编码问题
  8. 号称“完全自主研发”的木兰编程语言开发者道歉后,中科院的回应来了!
  9. 字节跳动宣布取消大小周;淘宝、支付宝等阿里系App取消开屏广告;Python 3.10 beta 4 发布|极客头条...
  10. 整理C知识点--函数(重点)
  11. 路由器上下行测试软件,无线传输性能测试平台和测试方法
  12. 前端开发工具Axure——Axure原型图查看
  13. 人工智能(12)大数据
  14. python自定义拼音输入法_用Python从0开始实现一个中文拼音输入法的思路详解
  15. java实现清除图片水印_Java 添加、删除PPT文本和图片水印
  16. 【PIL处理图片】小技巧之画虚线、加粗字体、长文本自动分行(符号处理)
  17. 用amd组装高档游戏型计算机,高配吃鸡真带劲!高端最新只选AMD游戏主机
  18. 解决电脑CPU占用率高问题
  19. Excel定位功能删除空值所在行
  20. 2021-02-01

热门文章

  1. python语言程序设计实验答案实验八函数_C++程序设计 实验8 实验报告 标准答案...
  2. 未能加载包studio package_Xrepo:一个现代化的跨平台 C/C++ 包管理器
  3. SAP 电商云 Spartacus UI feature level 的一个测试
  4. 介绍一个功能强大的 Visual Studio Code 扩展 - Rest Client,能部分替代 Postman
  5. SAP UI5里input field live search的实现例子
  6. SAP Analytics Cloud和Cloud for Customer之间的Single Sign on配置
  7. 如何实现SAP UI5 Web Component React控件的加载效果
  8. HubSpot company数据在UI上的展示和通过API方式进行获取
  9. Fiori Elements value help的工作原理
  10. SAP UI5 Manifest fill logic