java - 如何在Java的构造函数中为变量设置条件值?

标签 java constructor conditional-statements

我正在尝试创建一个条件,使变量价格不小于 0,以便使用构造函数有效

这是我的代码

public void setPrice(){ 

if(price > 0){

    System.out.println("Valid value");}
else{

    System.out.println("Error");} }

除了 if 语句之外还有其他方法吗?

最佳答案

如果这是内部检查(例如,如果不是正价格,则此时是编程错误),您可以使用 assert。像这样的东西:

assert price > 0 : "Price must be positive."

如果这是检查外部生成的输入,则异常是更好的选择:

if (price <= 0) { throw new IllegalArgumentException("Price must be positive"); }

这仍然使用if。通常这些类型的验证方法被放入实用方法中。例如 Guava 有先决条件:

Preconditions.checkArgument(price > 0, "Price must be positive");

最后还有验证框架,您可以在其中设置对象并检查是否满足所有条件(例如:http://beanvalidation.org/)

关于java - 如何在Java的构造函数中为变量设置条件值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36510943/

相关文章:

java - 如何在java中使用另一个包中的类?

c++ - 如果对象在构造函数中抛出异常,会调用基类的析构函数吗?

swift - 在各种条件下在字典中搜索 Swift

r - 基于数据帧 R 中的组的条件聚合

javascript - ng-if 语句以一种方式工作,但不以另一种方式工作,为什么?

java - 代码不会接受 Freesans 作为资源文件

java - CVS - 比较时创建 Zip

java - 如何从用户那里读取 10 个整数,并在不使用数组的情况下识别第二大整数?

php - 在 PHP 中,如何反序列化为当前对象?

C++ 字符串 - 使用初始化列表构造函数时的奇怪行为