java - ClassCastException 预期但在代码运行时不会发生
问题描述
public class Node<T> {
private T objReference;
private Node<T> nextReference;
public Node(Object ref) {
objReference = (T) ref;
nextReference = null;
}
public Node() {
objReference = null ;
nextReference = null ;
}
public void assignNextReference(Node ref) {
this.nextReference = ref;
}
public Node getNextReference() {
return this.nextReference;
}
public T getObjReference() {
return objReference ;
}
public void assignObjReference(Object ref) {
try {
objReference = (T) ref;
} catch(ClassCastException e) {
System.out.println(e);
}
}
}
我预计以下调用会引发 ClassCastException,但不会引发异常。
Node<Integer> n = new Node<Integer>() ;
n.assignObjReference(new String("String"));
当我们使用 Integer 作为类型参数时,assignObjectReference 方法会尝试将 String 引用转换为 Integer 类型参数。由于这是不可能的,我们应该得到一个 ClassCastException。我在这里想念什么?
解决方案
推荐阅读
- c# - 使用操纵杆旋转游戏对象
- html - 单击后如何保持此按钮打开
- python - Plotly Choroplethmapbox 未显示所有多边形
- node.js - 由于节点 gyp 错误,web3 js 未安装
- c# - 如何通过角度 Vector3 旋转尺寸 Vector3?
- excel - ppPasteMetaFilePicture 的 DataType 不会将地图从 Excel 复制到 PowerPoint
- slurm - 如何在 Slurm 中以令人尴尬的方式并行运行?
- html - 是否可以在按下 HTML 网站按钮时向 SQS 队列发送消息?
- java - org.postgresql.util.PSQLException:错误:列 systementi0_.id 不存在 - Hibernate,PostgreSql
- android - 如何开发带有叠加层的直播应用程序