1

現在、私は2つのリストを持っています

private List<Department> subdepts = new LinkedList<Department>();
private List<Employee> employees = new LinkedList<Employee>();

実行時にそれらをオブジェクトとして取得しますが、いつ表示されるかを知る必要がありますList<Department>

次のコードで逃げました。

// o is an Object
if(o instanceof List){
    List l = (List)o;
    if(l.size() > 0){
    if(l.get(0) instanceof Department){

しかし、リストが空の場合はどうすればよいでしょうか? かどうかはどうすればわかりList<Department>ますか?

4

1 に答える 1

1

ジェネリック パラメーターの型は実行時に消去されます。つまり、リストの宣言されたジェネリック型を特定できません。これはジェネリック型消去と呼ばれます。

リストに 1 つのタイプのオブジェクトのみが含まれることがわかっている場合は、リスト内のオブジェクトが特定のクラスのインスタンスであるかどうかを簡単に確認できますが、これは不明確な回避策です。

于 2013-05-31T06:32:29.980 に答える