繁体   English   中英

如何在Java中将方法添加到现有对象?

[英]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的子类。

最简单的方法是ShapePShape复制到新实例中:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM