如果调用对象表示与参数相同的东西,如何返回布尔值?

时间:2016-09-11 07:35:56

标签: java

因此传递IPv4地址,如果它们是相同的IP,则应返回true。

/**
 * 
 * @param other
 * @return true if calling object and parameter object represent 
 * the same ip address, and false otherwise
 */
public boolean equals(IPAddress other) {
    if(this.parts.equals(other.parts)){    //need help here
        return true;
    }
    else
        return false;

但是,无论我在上面编写哪种方式,JUnit测试用例

    public void testEqualsIPAddress() {
    correct1 = new IPAddress("0000192.168.1.0000254");
    correct2 = new IPAddress("255.000255.00000255.255");
    correct3 = new IPAddress("000.00.00.0000000000000");
    correct4 = new IPAddress("192.168.1.254");

    assertTrue(correct1.equals(correct4));
    assertTrue(correct4.equals(correct1));
    assertFalse(correct1.equals(correct3));
    assertFalse(correct2.equals(correct4));
}

返回失败
assertTrue(correct1.equals(correct4));

应该如何

 public boolean equals(IPAddress other){
//code here
}

写的?

编辑:

这是构造函数

public class IPAddress {
    private int[] parts;

1 个答案:

答案 0 :(得分:0)

我刚刚添加了一个嵌套循环,如果所有部分都相同,则返回true

public boolean equals(IPAddress other) {
if(this.parts[0] == other.parts[0])
    if(this.parts[1] == other.parts[1])
        if(this.parts[2] == other.parts[2])
            if(this.parts[3] == other.parts[3])
                return true;
return false;
}