方向相反怎么写代码?
How to write the code if the direction is opposite of the other?
我有一个名为 Direction 的枚举 class,它有对象 S, N, W, E, and none
(南、北、东、西和 none)。我有一个方法 public boolean isOpposite(Direction other)
如果给定的方向与另一个方向相反,它应该报告。 none从来没有对立过任何东西,但是N / S是对立的,E / W是对立的。那么,如果方向与传递的对象相反,我如何检查布尔值?
public enum Direction {
N, E, S, W, none;
public Direction cycle()
{
if (this.equals(Direction.N))
return Direction.E;
else if(this.equals(Direction.E))
return Direction.S;
else if(this.equals(Direction.S))
return Direction.W;
else if(this.equals(Direction.W))
return Direction.N;
else if(this.equals(Direction.none))
return none;
return null;
}
public Direction getOpposite()
{
if(this.equals(Direction.N))
return Direction.S;
else if(this.equals(Direction.S))
return Direction.N;
else if(this.equals(Direction.E))
return Direction.W;
else if(this.equals(Direction.W))
return Direction.E;
else if(this.equals(Direction.none))
return Direction.none;
return null;
}
public boolean isOpposite(Direction other)
{
//???
}
}
return getOpposite() == other;
我有一个名为 Direction 的枚举 class,它有对象 S, N, W, E, and none
(南、北、东、西和 none)。我有一个方法 public boolean isOpposite(Direction other)
如果给定的方向与另一个方向相反,它应该报告。 none从来没有对立过任何东西,但是N / S是对立的,E / W是对立的。那么,如果方向与传递的对象相反,我如何检查布尔值?
public enum Direction {
N, E, S, W, none;
public Direction cycle()
{
if (this.equals(Direction.N))
return Direction.E;
else if(this.equals(Direction.E))
return Direction.S;
else if(this.equals(Direction.S))
return Direction.W;
else if(this.equals(Direction.W))
return Direction.N;
else if(this.equals(Direction.none))
return none;
return null;
}
public Direction getOpposite()
{
if(this.equals(Direction.N))
return Direction.S;
else if(this.equals(Direction.S))
return Direction.N;
else if(this.equals(Direction.E))
return Direction.W;
else if(this.equals(Direction.W))
return Direction.E;
else if(this.equals(Direction.none))
return Direction.none;
return null;
}
public boolean isOpposite(Direction other)
{
//???
}
}
return getOpposite() == other;