簡體   English   中英

Java從類構造通用實例

[英]Java Construct Generic Instance From Class

我正在嘗試使用類型參數構造泛型類的實例。 例如,如果有ArrayList.class而我想用String.class類對其進行初始化,該怎么辦? 我知道我可以使用ArrayList.class.newInstance()創建一個新實例,但是不能傳遞類型參數。 我想做new ArrayList<String> ,但是對於那個特定的示例,不是任何具有類型參數的類。

具體來說,我正在嘗試通過JUnit測試的子類化來實現對接口的不同實現的測試。

我意識到,可以只返回泛型類的初始化,而無需使用類型參數,而是將其強制轉換為該參數。

例如:

private Class<? extends List> implementation = ArrayList.class;

private <E> List<E> newList(Class<E> itemClass) {
    try {
        return (List)implementation.newInstance();
    } catch (Throwable x) {
       return null;
    }
}

@Test
public void test1() {
    List<String> testInstance = newList(String.class);
    testInstance.add('hey');
    assertEquals(3, testInstance.get(0).lenght());
}

暫無
暫無

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

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