Javaクラスのこの部分を考えると、
private List<Object> components = new ArrayList<Object>();
private A a;
private B b;
private C c;
add(a, b, c);
public void add(Object... component){
for(Object o : component) {
components.add((CAST)o);
}
}
オブジェクトoを適切なタイプでリストにキャストしたいと思います。
ここで期待される結果はA a, B b, C c
、私のリストに含まれることです。
getClass()を試してみましたが、コンパイルしませんでした。予想されるJavaタイプをすでに知っていることを考慮して、オブジェクトをアップキャストするにはどうすればよいですか?
編集:
タイプAの最初のオブジェクト、タイプBの2番目のオブジェクト、タイプCの2番目のオブジェクトを追加する必要があります...(追加するアイテムの数はわかりません)リストがあれば、正しく入力されたN個のオブジェクトを含むリストを取得します。(gtt(0)はA、get(1)はB、get(2)はCと入力されます)
オブジェクトの数がわからず、最初はオブジェクトのタイプがわからないため、リストをObjectとして宣言しました。
メソッドを作成しました(add
その場合)。varargsは、argsの数がわからないため、コレクション内でループするのに役立ちます。
varargsで最初のオブジェクト、2番目のオブジェクト、3番目のオブジェクト(など)を取得し、それをリストにプッシュするだけですが、A、B、Cなどのオブジェクトタイプは私が受け取ったもの!
もっとはっきりしているかどうかはわかりません。