如何解决将对象向下转换为 java
我正在处理一项任务,我不理解沮丧。 例如,类 Reference.java 和我在一个传递对象的方法中。如果该对象是类型(不确定这是否是正确的词),则创建一个新的 Reference 对象。这是我现在所拥有的,但它不起作用。
public method(Object obj){
if( obj instanceof Reference){
Object obj = new Reference();
}
}
现在 Reference.java 的构造函数需要两个参数,我也不明白这在向下转换时到底是如何工作的。
解决方法
Object obj = new Reference();
这是一个向上的场景。
如果你想要低头,那就是,
Reference ref = (Reference) obj;
当它有效/可能时,
- 假设您使用 Reference 类(子类引用)创建了一个 Object 类实例
Object obj = new Reference();
这是一个向上的转变。你可以这样做,
- 在这种情况下,您可以不带任何ClassCastException
Reference ref = (Reference) obj;
- 但是当您不清楚时,Cast 是否安全?这一次
instanceof
可以帮助您。所以完整的工作代码应该是-
class Reference extends Object{ //not necessary extends Object class,but for
//clearification
...
public static void method(Object obj){
if(obj instanceof Reference){
Reference ref = (Reference) obj;
}
}
}
在主方法中,
public static void main (String [] args) {
Object _obj = new Reference();
Reference.method(_obj);
//downcast successfull
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。