如何在不使用构建器、静态构造函数或抛出异常的情况下创建一个包含两个永远不相等的整数的构造函数?

我有一种奇怪的感觉,即当构造函数编写不正确时,代码开始变得更加复杂。最近,我一直在尝试简化并坚持较低级别的 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();


缥缈止盈
浏览 82回答 1
1回答

RISEBY

你根本做不到。保证两个整数不相等的唯一方法是只接受一个整数并以保证不等式的方式从中导出第二个整数,例如加一。    public Foo(int x, int y)    {        this.x = x;        this.y = x + 1; // guaranteed not to be equal to x.    }但是,如果您需要接受两个值(例如,因为您需要比只分开一个值更大的灵活性),唯一合理的做法是在它们相等时抛出异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java