[英]create a two dimensionla array with Java reflection using java.lang.reflect.Array.newInstance
[英]How do I pass generic type for java.lang.reflect.Array.newInstance?
我的代碼段。
public class GenericArray <T extends Comparable<T>>{
private T[] a;
private int nElems;
public GenericArray(int max) // constructor
{
a=(T[])java.lang.reflect.Array.newInstance(Integer.class, max);
//Hard coded for Integer.
}
}
GenericArray arr= new GenericArray<Integer>(100);
當我實例化顯式傳遞Integer.class時,此方法有效。 我如何使它成為通用的?
還是有一種方法可以打印使用ParameterizedType傳遞給GenericArray的Type信息? (如果可能的話,我會使用if語句來處理)
您可以通過傳遞如下類型來參數化您的類:
GenericArray<String, Integer> myobj = new GenericArray<>(“John”,2);
要么
考慮給定代碼,其中通用方法display()接受數組參數作為其參數。
class GenericArray <T extends Comparable<T>>
{
public<T> display(T[] val) {
for( T element : val)
{
System.out.printf(“Values are: %s “ , element);
}
}
// Declaring Array
GenericArray[] intValue = {1, 7, 9, 15};
GenericArray<Integer> listObj = new GenericArray<> ();
// Passing Array values
listObj.display(intValue);
同樣,您可以使用兩個類型參數聲明一個類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.