我是新手,也是Java新手。我有一个Java作业,这就是问题:
该课程应具备以下方法:
所有实例变量的setter,并对其进行验证 以下内容:
名称不能为空
尿素水平必须介于0到10之间(含)
蛋白质水平必须介于0和150之间(含)
如果传入setter的任何值无效,则不要更改实例变量的值并返回false。
这是实例变量:
public class Patient {
private String name;
private boolean bleedingHistory = true;
private double ureaLevel;
private double proLevel;
所以我的问题是如果输入值不正确,如何返回上面的实例变量。
答案 0 :(得分:2)
这很简单,只需确保你的setter中有if语句来验证输入。如果验证失败,请不要更改变量;相反,抛出IllegalArgumentException让调用者知道名称没有改变。 (信用:@ADTC)
例如,这是患者姓名的设定者:
public void setName(String newName) throws IllegalArgumentException
{
if(newName != null && !newName.isEmpty())
{
this.name = newName;
}
else
{
throw new IllegalArgumentException();
}
}
if语句评估的内容是:“如果newName
不 null
, newName
不为空,然后我们会将this.name
替换为newName
。否则,我们会抛出new IllegalArgumentException()
。“
注意如果if语句的计算结果为true
,变量name
将替换为newName
,但是,如果它的计算结果为false
,则抛出{ {1}}。如果要在代码中调用此方法,则应在try-catch语句中调用它,如下所示:
IllegalArgumentException