作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 PHP 工作了几年后才开始接触 Java,我想了解使用 Java 时的一些最佳实践和规范。
我想知道是否可以让整个类充当自定义类型来强制限制整数参数的范围?
例如:
class Person() {
private int age;
public Person(int age) {
if(age < 0) {
throw new IllegalArgumentException();
}
this.age = age;
}
public int getAge() {
return age;
}
}
或者:
class Person() {
private Age age;
public Person(Age age) {
this.age = age;
}
public int getAge() {
return age.toInt();
}
}
class Age() {
private int age;
public Age(int age) {
if(age < 0) {
throw new IllegalArgumentException();
}
this.age = age;
}
public toInt() {
return age;
}
}
此外,在第二个示例中,我在 Person.getAge() 中将 Age 对象转换为 int,这很方便,但不知何故感觉不对,因为 Person 的构造函数采用 Age 对象。有什么想法吗?
谢谢!
最佳答案
我认为你的第二个例子对于这种情况有点矫枉过正,因为你只有一个整数和一个约束,并且 Age
没有任何与之相关的行为。如果其中任何一个不同,例如,如果您有更多具有相互关联约束的数据,则将它们分成它们自己的类可能是有意义的。所以你的第二个设计并没有错,只是不适合这个玩具示例。
对于您的第二个示例,我可能会让 Person.getAge
方法返回一个 Age
对象而不是 int
。同样,对于这个玩具示例,很难看出差异,但返回 int
感觉就像是 Person
和 Age
之间的耦合太多了。
关于java - 如何在 Java 中的参数提示中强制执行整数限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937289/
我是一名优秀的程序员,十分优秀!