我有一种奇怪的感觉,即当构造函数编写不正确时,代码开始变得更加复杂。最近,我一直在尝试简化并坚持较低级别的 oop 原则,以便代码不会长成复杂的蜘蛛网。https://softwareengineering.stackexchange.com/questions/181850/are-exceptions-an-oop-concept我问的问题可能是不可能的。public class Foo{ private int x; private int y; public Foo(int x, int y) { this.x = x; this.y = y; }}总是这样---->foo.getX() != foo.getY();
1 回答
RISEBY
TA贡献1856条经验 获得超5个赞
你根本做不到。
保证两个整数不相等的唯一方法是只接受一个整数并以保证不等式的方式从中导出第二个整数,例如加一。
public Foo(int x, int y)
{
this.x = x;
this.y = x + 1; // guaranteed not to be equal to x.
}
但是,如果您需要接受两个值(例如,因为您需要比只分开一个值更大的灵活性),唯一合理的做法是在它们相等时抛出异常。
添加回答
举报
0/150
提交
取消