我可以制作一个适用于特定类型的泛型类的方法吗?
例如,我在下面有我的课:
package utils;
public class MyArray<T> {
// Constants
private static final int INITIAL_SIZE = 10;
// Instance Fields
private T[] elms;
private int size;
// Constructor
public MyArray () {
elms = (T[]) new Object[INITIAL_SIZE];
size = 0;
}
// Methods
public void add (T elm) {
if (elms.length == size)
increaseSize();
elms[size++] = elm;
}
@Override
public String toString () {
String str = "[" + elms[0];
for (int i = 1; i < size; i++)
str += ", " + elms[i];
str += "]";
return str;
}
// Helper Methods
private void increaseSize () {
T[] temp = (T[]) new Object[elms.length];
for (int i = 0; i < temp.length; i++)
temp[i] = elms[i];
elms = (T[]) new Object[2 * temp.length];
for (int i = 0; i < temp.length; i++)
elms[i] = temp[i];
}
}
我可以创建一个可以在其他类型上工作MyArray<Integer>
或MyArray<Long>
引发异常的方法吗?
我尝试执行以下操作:
public T sumOfElms () {
if (T instanceof Integer) {
// code here
}
}
但这似乎不起作用。
关于如何做到这一点的任何想法或想法?