我正在尝试找出从给定的String
创建新的Shape
实例的最有效方法,例如由 String.valueOf(Object obj)
静态方法为 Shape
参数返回的值。假设我创建了一个Circle
,并向其中添加了一些附加功能:
Circle circle = new Circle(10, 10, 10, Color.BLACK);
circle.setStroke(Color.RED);
circle.setStrokeWidth(2);
现在,我正在编写 String.valueOf(circle)
返回的值,即:
Circle[centerX=10.0, centerY=10.0, radius=10.0,
fill=0x000000ff, stroke=0xff0000ff, strokeWidth=2.0]
...在 *.txt
文件中,或类似的文件中。接下来,我读取此 *.txt
文件,并将其内容放入新的 String
中,例如:
String stringCircle = "Circle[centerX=10.0, centerY=10.0, radius=10.0, "
+ "fill=0x000000ff, stroke=0xff0000ff, strokeWidth=2.0]";
从 stringCircle
值创建新的 Circle
实例的最佳方法是什么?
最佳答案
考虑重写 Circle 的 toString
方法以返回易于阅读的值字符串,然后编写构造函数 public Circle(StringDefinition)
来相应地读取该字符串.
该字符串可能类似于 10.0 10.0 10.0 0x000000ff 0xff0000ff 2.0
由于您已经实现了 toString 和构造函数,因此您可以假设参数顺序始终相同,然后使用以空格作为分隔符的字符串标记器来轻松分配值。
关于java - 根据 String.valueOf(Object obj) 的值创建一个新 Shape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252161/