java 中 Rectangle.contains() 的错误结果

Wrong result from Rectangle.contains() in java

看来Rectangle中的contains()方法不包含右下角。

例如下面的代码returns "false";

Rectangle r = new Rectangle(0,0,100,100);
System.out.println(r.contains(100, 100));

引自矩形 API (Java 8):

public Rectangle(int x, int y, int width, int height)
Constructs a new Rectangle whose upper-left corner is specified as (x,y) and whose width and height are specified by the arguments of the same name.

将宽度和高度与 (0,0) 的起始 Point 一起使用意味着 Rectangle 具有从 (0,0) 到 (99,99) 的点 - 100 像素的宽度和100 像素的高度,基于始终包含在 Rectangle.

中的给定起始像素 (0,0)

这意味着(100,100)确实不会被包含在构造的Rectangle中。根据上面的逻辑,(100,100) 将包含在以下内容中(使用 online java compiler 验证):

Rectangle r = new Rectangle(1,1,100,100);

参考文献:

似乎 API 错误地指出“左上角”是 (x,y),而根据接受的答案和我自己的经验,(x,y) 是左下角.