因此传递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;
答案 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;
}