簡體   English   中英

抓住Foo []。給出Foo.class類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM