Java泛型在运行时异常处理实例
在Java中,泛型用于创建可以接受多种类型对象的容器。然而,在运行时进行泛型类型的异常处理可能涉及到一些特殊的处理方式。
以下是一个简单的泛型类MyList<T>
和其运行时异常处理的例子:
import java.util.ArrayList;
import java.util.List;
// 泛型列表
public class MyList<T> {
private List<T> items = new ArrayList<>();
// 添加元素到列表
public void addItem(T item) throws IllegalArgumentException {
if (item == null) {
throw new IllegalArgumentException("Item cannot be null.");
}
items.add(item);
}
// 获取列表中的元素
public T getItem(int index) {
return items.get(index);
}
}
// 测试代码,抛出异常的场景
public class Main {
public static void main(String[] args) {
try {
MyList<String> list = new MyList<>();
list.addItem("Item1");
list.addItem(null); // 异常:null值无法添加到非空列表
// 获取已添加元素,这里不会抛异常
String item2 = list.getItem(1);
System.out.println(item2); // 输出 "Item1"
} catch (IllegalArgumentException e) {
System.err.println("Caught an IllegalArgumentException: " + e.getMessage());
}
}
}
在这个例子中,MyList<T>
在运行时会根据添加的元素类型进行动态调整。如果尝试将null值添加到非空列表中,会抛出一个IllegalArgumentException
。
在异常处理部分,我们捕获了可能抛出的IllegalArgumentException
并打印其详细信息。
还没有评论,来说两句吧...