簡體   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