[英]Get hold of Foo[].class given Foo.class
我有一個類型Class
c
的對象(我在運行時得到了對象,所以我無法在編譯時告訴它代表哪個類。)
假設c
代表Foo
類。 我現在想要獲得一個代表Foo[]
的Class
-instance。
使用標准Java API如何做到最好?
根據http://tutorials.jenkov.com/java-reflection/arrays.html ,其中一種方法是:
Class arrayClass = java.lang.reflect.Array.newInstance(c, 0).getClass();
這看起來像是作弊,但它比使用類名更清晰。
以下是如何執行此操作的示例:
import java.lang.reflect.Array;
public class ReflectTest {
public static void main(String[] args) {
Foo c = new ReflectTest().new Foo();
Foo[] foos = (Foo[]) Array.newInstance(c.getClass(), 5);
}
class Foo {
}
}
從我在測試中看到的情況來看,這應該有效:
Class c = ...
Class cArr = java.lang.reflect.Array.newInstance(c, 1).getClass();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.