gpt4 book ai didi

java - 如何在 Java 中的参数提示中强制执行整数限制

转载 作者:行者123 更新时间:2023-11-29 09:51:12 26 4
gpt4 key购买 nike

我在使用 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 感觉就像是 PersonAge 之间的耦合太多了。

关于java - 如何在 Java 中的参数提示中强制执行整数限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com