簡體   English   中英

如何將Class對象列表轉換為數組?

[英]How to convert a list of Class objects into an array?

我在List中有一些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();
}

我了解toArray()返回一個Object []。 有沒有辦法避免演員?

您可以創建一個新數組並將每個元素一個接一個地放入:

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;
    }

您可以將toArray方法與數組一起用作參數:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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