[英]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.