[英]How can I add method to an existing object in Java?
我正在使用处理库来用Java构建项目。 我使用一个函数,该函数返回一个PShape
类型的对象(我无法访问源代码)。
我需要使这个对象的类型为Shape(我设计了一个扩展PShape
)。
我该怎么做?
基本上我有:
PShape pShape = loadShape(filename);
在loadShape
是一个函数的地方,我无法访问源代码。
我想以某种方式做:
class Shape extends PShape {...}
接着
Shape shape = (Shape) loadShape(filename);
但这不会起作用,一旦loadShape()
给我一个PShape
,而不是一个Shape
如何使loadShape
返回Shape
?
谢谢
如果loadShape()
返回PShape
,则返回PShape
。 您不能使其返回PShape
的子类。
最简单的方法是Shape
将PShape
复制到新实例中:
Shape myLoadShape(String filename)
{
return new Shape(loadShape(filename));
// Assumes you have a `Shape(PShape)` constructor.
}
或者Shape
不是子类,但是它包含一个PShape
数据成员。
class Shape
{
// No one picked up my C++ syntax goof ;-)
protected PShape pshape;
// Using a constructor is just one way to do it.
// A factory pattern may work or even just empty constructor and a
// load() method.
public Shape(String filename)
{
pshape = loadShape(filename);
// Add any Shape specific setup
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.