私はCar、Homeアダプタなどの特定のクラスを持ち、それらはすべてAdapterクラスに拡張されています。インスタンスをsetAdapterForListメソッドに渡します。 buyCar、getHomeのように。である私は何をしたい親クラスを自分のクラスにキャストする方法
は、
public void setAdapterForList(Adapter adapter) {
// some how get their type from adapter, Eg. CarAdapter
// and cast CarAdapter to it
Type type = adapter.getType();
Type typedAdapter = (type) adapter;
typedAdapter.buyCar()
setAdapter(adapter);
}
サイドノート:メソッドは、「setAdapterForList」と呼ばれている場合は、なぜ地球上であなたは内buyCar()などのメソッドを呼び出していますか?リストに何かを加えることは、リストに物を追加すること以外の副作用があってはなりません。 – GhostCat
質問自体について:2つの選択肢があります。どちらかダウンキャスト(非常に頻繁に悪いデザインのにおい)を行う。または多型を使用します。 – GhostCat
@Jägermeister多形性でどうやったらいいですか? – Mike