java - 检查参数不为空、不为空或为负是什么意思?
问题描述
我有一个任务,上面写着
必须检查参数以确保它们不为空或为空,也不是负值。
我无法理解检查以确保它们不为空或为空或否定的含义。
//field
private String listingNumber;
//My constructor:
public A0_Realtor(String listingNumberParam)
{
setListingNumber(listingNumberParam);
}
编译但不起作用的设置器?如果创建一个默认构造函数并检查该值,我发现该值为 null 并且不会打印出无效值
//Getter not sure if this does anything
public String getListingNumber(){
return listingNumber;
}
//Setter
public void setListingNumber(String newListingNumber){
if( newListingNumber != null || newListingNumber.isEmpty()){
System.out.println("Invalid value");
} else {
listingNumber = newListingNumber;
}
//打印要价的东西。我怀疑我只是因为我输入的“无效”而变得无效?
public void printDetails (){
System.out.println("MLS Number: "+ listingNumber);
}
我的输出:
MLS 编号:空
解决方案
首先,您似乎通过将方法setListingNumber
包含在自身内部而弄乱了您的代码。我猜这只是一个发布错误。
但问题在于这段代码
if( newListingNumber != null && newListingNumber.isEmpty())
值不可能是null
和empty
。您需要更改为or
if( newListingNumber != null || newListingNumber.isEmpty())
编辑
此外,您的代码没有显示,但我假设您确实有一个名为listingNumber
推荐阅读
- python - 将列表中的日期时间字符串转换为日期时间对象
- html - 如何在 Google 表格中使用 IMPORTXML 和 Xpath获取URL?
- scala - 如何在不同的列上执行聚合(求和)并根据 spark 数据帧的另一列对结果进行分组?
- azure-active-directory - azure Azure Active Directory 应用程序中的“授予管理员同意”按钮有什么作用?
- android - 带有特殊字符的 Firebase 消息
- javascript - 使用 JSDoc 记录模块导出类
- javascript - 使用样式化组件实现图像的延迟加载
- c - C 预处理器宏
- javascript - 我在使用 metaweather/location api 时遇到问题
- email - 我可以混合使用 GSuite 和我自己的服务器来发送电子邮件吗?