'Model'クラスを拡張する複数のクラスを持つAndroidアプリケーションを構築しています。
これは今の私のコードです:
public class Model {
protected int mId;
public int getId() { return mId; }
public Model(JSONObject json) {
try {
mId = json.getInt("id");
} catch (JSONException e) {
e.printStackTrace();
}
}
public Class<? extends Model> getBy(String property, String value) {
// should return new instance of extending class
return null;
}
}
public class Song extends Model {
protected String mName;
protected String mArtist;
protected int mDuration;
public String getName() { return mName; }
public String getArtist() { return mArtist; }
public int getDuration() { return mDuration; }
public Song(JSONObject json) {
super(json);
try {
mName = json.getString("name");
mArtist = json.getString("artist");
mDuration = json.getInt("duration");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Modelクラスにメソッドを作成して、それを拡張するクラスの新しいインスタンスを返そうとしています。
アイデアは、複数のクラスがModelクラス、つまりArtist、Albumを拡張できるということです。これらのクラスには、Modelクラスではなく、Artist、Albumなどのクラスのインスタンスを返す「getBy」メソッドが必要です。