如何删除控制台输出上的java.awt.Point[…]

如何删除控制台输出上的java.awt.Point[…],java,Java,我正在使用java.awt.Point,当我试图返回Point对象时,它会打印出java.awt.Point[x=…,y=…]。我怎样才能摆脱java.awt.Point,让方法只返回x和y?我不知道你的问题是否仍然是真实的(我希望不是,你已经找到了解决方案=) 但以防万一: 当您在字符串中写入类似于someObject.getLocation()的内容时,您正在添加一个点对象。这意味着它被转换为字符串,并使用toString()方法完全用于java.awt.Point,如下所示: public

我正在使用
java.awt.Point
,当我试图返回
Point
对象时,它会打印出
java.awt.Point[x=…,y=…]
。我怎样才能摆脱
java.awt.Point
,让方法只返回
x
y

我不知道你的问题是否仍然是真实的(我希望不是,你已经找到了解决方案=)
但以防万一:
当您在字符串中写入类似于
someObject.getLocation()
的内容时,您正在添加一个点对象。这意味着它被转换为字符串,并使用
toString()
方法完全用于
java.awt.Point
,如下所示:

public String toString() {
return "java.awt.Point[x=" + x + ",y=" + y + "]";
}

但是您可以编写自己的替代字符串(),如:

// Get the object's location.
Point location = someObject.getLocation();

// Here goes your method
String locationString = "[" + location.x + "," + location.y + "]";

// Then just print it
System.out.println(lcoationString);

编写您自己的方法从该点获取x/y,并按照您想要的方式格式化。注意,您看到的是PrintStream调用点的toString方法的结果。不,您不能在Java中使用monkey patch。这种方法做的就是它所做的,你不能改变它。但你为什么要这么做?只需编写您自己的函数。我的意思是这是我在类中的方法:(public Point intersectionPoint(LineEquation other){/…Point b=new Point(x,y);return b;})所以当我在客户端代码中使用时,它只需在控制台上打印出类似:[link](java.awt.Point[x=0,y=-22])我不想用新的toString方法重写Point类,只想寻找摆脱java.awt.Point[]或类似(x,y)的最简单方法。。谢谢yoi@Chris Martin和Maddle