微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将对象向下转换为 java

如何解决将对象向下转换为 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 举报,一经查实,本站将立刻删除。