クラス自体を作成するためのいくつかのメソッドを持つJavaで基本/親クラスを構築しています。親クラスのインスタンスを返す代わりに、親クラスに子クラスのインスタンスを返す方法があるかどうか疑問に思っていますその後、子にキャストする必要がありますか?
たとえば、これが私の親クラスです。
public abstract class SFObject
{
// Variables
protected String mID;
protected String mName;
// Function called to create ourselves from a DiffObject
public abstract SFObject CreateFromDiffObject(DiffObject object);
// Function called to create a list of ourselves from a query
public List<SFObject> CreateListFromQuery(Connection connection, String query)
{
// Run the query and loop through the results
ArrayList<SFObject> objects = new ArrayList<SFObject>();
for (DiffObject object : connection.Query(query))
objects.add(CreateFromDiffObject(object));
return objects;
}
}
SFObject クラスに基づいて子クラスを作成すると、子クラスの 2 つの関数は SFObject (子クラスの型にキャストする必要がある) または SFObject のリスト (子クラスの型に個別にキャストする必要がある) を返します。子クラス タイプ)。子クラスがそれ自体のインスタンスを SFObject としてではなく、それ自体として返すようにする方法 (おそらくリフレクションを使用) はありますか?