java – 如果构造函数的参数是非法的,则阻止类的实例化?
发布时间:2020-12-14 05:14:47 所属栏目:Java 来源:网络整理
导读:我有一个公共构造函数,它接受一个参数(int age)来创建一个对象.我想检查传递的参数是否合法,例如年龄不能为负数.如果它是非法的,那么不要创建一个对象/实例.如果合法,没问题. 我只能想到一个办法去做 – 使构造函数私有.使用参数(int age)创建一个静态方法来
我有一个公共构造函数,它接受一个参数(int age)来创建一个对象.我想检查传递的参数是否合法,例如年龄不能为负数.如果它是非法的,那么不要创建一个对象/实例.如果合法,没问题.
我只能想到一个办法去做 – 使构造函数私有.使用参数(int age)创建一个静态方法来执行所有检查,如果传递一个非法值,则返回null.如果你传递一个合法的值,然后创建一个对象并返回它的引用. 编辑: 是否有意义 ? 解决方法
是.我建议从构造函数中抛出异常 public class Person { int age; public Person(int age) throws Exception { if(age <= 0) { throw new Exception("Age is not allowed"); } // Do some stuffs this.age = age; } } 编辑: 您也可以按照Till Helge Helwig的建议使用IllegalArgumentException public class Person { int age; public Person(int age) throws IllegalArgumentException { if(age <= 0) { throw new IllegalArgumentException("Age is not allowed"); } // Do some stuffs this.age = age; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java创建二叉树并遍历的代码
- 适用于Java的OpenID架构
- the simmon effect(in psychology) :build the function of
- c# – 函数/方法的后置条件
- java – Selenium getText
- java – 关于BufferedImage.getSubimage(int x,int y,int w
- .net – 为什么Task.WhenAll抛出TaskCanceledException和Ta
- java – 使用iterator和iterator.remove()时的ConcurrentMo
- Java发明界面?
- java – 在JPasswordField中显示密码,而不是将0设置为echo
推荐文章
站长推荐
热点阅读