Java 为什么带有常量的getter和setter不能与string.length()一起工作?
有人能解释为什么当我在if语句中为String.length()使用常量时,它不会通过有效的测试,但如果我在if语句中硬编码值,它会通过吗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
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;