0

まず最初に、申し訳ありませんが、この質問は既に回答されている可能性がありますが、私の検索では何もわかりませんでした。

基本的に、Listクラスオブジェクトのを作成し(クラスのみを保存する/初期化されたオブジェクトを保存しない-説明する方法が本当にわからない)、それらを別のクラスオブジェクト( ala instanceof)と比較する必要があります。しかし、これを行う方法がわかりません。

例は次のとおりです。

私はこれをしたい:

if(something1 instanceof something2)

「something1's」のaListを使用して、次のように反復できるようにします。

for(int i= 0 ; i <= list.size; i++) 
{
  if (list.get(i) instanceof something2)
    doSomething();
}

そのため、基本的に、そのようなことを行うには、実際のリストにどのように/何を保存する必要があるかを知る必要があります。

これは可能ですか?

これが少し理解できることを願っています。

4

4 に答える 4

1

メソッドを使用してクラスを比較できますequals()。このメソッドは、クラスがまったく同じかどうかをチェックします。

したがって、最初にクラスをリストに入れます (クラスがあり、リストが であると仮定しFooますBar) List<Class>:

list.add(Foo.class);

そして、それを反復して、次のように比較します。

if (list.get(i).equals(Bar.class))
    doSomething();
于 2016-04-04T19:54:17.107 に答える
0

Classinstance ofクラスはチェックのようなことをする API を提供します:

Class numClass = Number.class;
List<Class> classes = Arrays.asList(Integer.class);
...
if (numClass.isAssignableFrom(classes.get(i))) {
    doSomething();
}
于 2016-04-04T19:52:36.643 に答える
0

ジェネリック リストとクラス Class の使用:

List<Class> classes = new ArrayList<Class>();
classes.add(Integer.class);
classes.add(String.class);
classes.add(MyClass.class);
//...

for (Class myClass : classes) {
    if (myClass.equals(MyOtherClass.class)) {
        doSomething(); 
    }
}
于 2016-04-04T19:57:42.803 に答える