Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么带有常量的getter和setter不能与string.length()一起工作?_Java_Unit Testing_Constants_Getter Setter_Business Rules - Fatal编程技术网

Java 为什么带有常量的getter和setter不能与string.length()一起工作?

Java 为什么带有常量的getter和setter不能与string.length()一起工作?,java,unit-testing,constants,getter-setter,business-rules,Java,Unit Testing,Constants,Getter Setter,Business Rules,有人能解释为什么当我在if语句中为String.length()使用常量时,它不会通过有效的测试,但如果我在if语句中硬编码值,它会通过吗 public void setName(String name) { if (name.length() >= 1 && name.length() <= 20) { this.name = name; } else { throw new IllegalArgumentExcept

有人能解释为什么当我在if语句中为String.length()使用常量时,它不会通过有效的测试,但如果我在if语句中硬编码值,它会通过吗

public void setName(String name) {
    if (name.length() >= 1 && name.length() <= 20) {
        this.name = name;
    } else {
        throw new IllegalArgumentException();
    }
}
换成

public static final int UPPER_NAME_LIMIT = 20;
public static final int LOWER_NAME_LIMIT = 1;

不工作意味着什么?你试过使用调试器吗?你的值被翻转了<代码>姓名下限应该是
1
姓名上限
应该是
20
。谢谢你,已经看了好几个小时了
public static final int UPPER_NAME_LIMIT = 1;
public static final int LOWER_NAME_LIMIT = 20;
public static final int UPPER_NAME_LIMIT = 1;
public static final int LOWER_NAME_LIMIT = 20;
public static final int UPPER_NAME_LIMIT = 20;
public static final int LOWER_NAME_LIMIT = 1;