java设计一个数组类,该类的对象能表示任何类型的对象数组。
时间: 2024-12-15 14:28:07 浏览: 5
在Java中,我们可以设计一个泛型类来创建一个可以存储任意类型对象的数组。这个数组被称为`ObjectArray`或`GenericArray`,使用了泛型来提供类型安全。以下是一个简单的实现:
```java
import java.lang.reflect.Array;
public class GenericArray<T> {
private Class<T> componentType;
private T[] array;
public GenericArray(Class<T> clazz) {
this.componentType = clazz;
this.array = (T[]) Array.newInstance(clazz, 0);
}
// 添加元素的方法
public void add(T element) {
if (element == null) {
throw new IllegalArgumentException("Element cannot be null");
}
ensureCapacity(array.length + 1);
array[array.length] = element;
}
// 确保有足够的空间添加元素
private void ensureCapacity(int capacity) {
if (capacity > array.length) {
@SuppressWarnings("unchecked")
T[] tempArray = (T[]) Array.newInstance(componentType, capacity);
System.arraycopy(array, 0, tempArray, 0, array.length);
array = tempArray;
}
}
// 获取特定索引处的元素
public T get(int index) {
if (index < 0 || index >= array.length) {
throw new IndexOutOfBoundsException("Index out of bounds");
}
return array[index];
}
// 其他方法如删除、遍历等...
// 为了展示类型转换,获取所有元素的字符串列表
public String toString() {
StringBuilder sb = new StringBuilder();
for (T obj : array) {
sb.append(obj).append(", ");
}
return sb.substring(0, sb.length() - 2); // 去掉最后的逗号
}
}
```
阅读全文