2017-07-21 5 views
1

配列に変換したいClassオブジェクトがリストにあります。私は、オブジェクト[]()を返すのtoArrayを理解Classオブジェクトのリストを配列に変換するにはどうすればよいですか?

private static Class<?>[] getClasses(final Object[] params) { 
    List<Class<?>> classList = new ArrayList<>(); 

    for (final Object param : params) { 
     classList.add(param.getClass()); 
    } 

    return (Class<?>[]) classList.toArray(); 
} 

: 以下は私のコードです。キャストを避ける方法はありますか?

+0

理由だけではなく、クラスの配列を作成する代わりに、リスト0をしていない:パラメータとして配列を持つtoArray方法クラス? – Arvind

答えて

2

あなたが使用することができます

return classList.toArray(new Class<?>[classList.size()]); 
2

あなただけの新しい配列を作成して、一つ一つ、の各要素を置くことができます。

Class<?>[] classes = new Class<?>[classList.size()]; 
for (int i = 0 ; i < classList.size() ; i++) { 
    classes[i] = classList.get(i); 
} 

または、リストを使用せずに全体の方法を書き換える:

private static Class<?>[] getClasses(final Object[] params) { 
     Class<?>[] classList = new Class<?>[params.length]; 

     for (int i = 0 ; i < classList.length ; i++) { 
      classList[i] = params[i].getClass(); 
     } 

     return classList; 
    } 
関連する問題