重复铸造

Thi*_*hbk 2 java casting corba

我的同事问我一个我自己找不到最终答案的问题,问题是关于对象投射.

假设我有一个A类和一个Factory类,在工厂类中,我想创建一个A实例:

Public class Factory {

    public A createA1() {
       Object instance = get_A_Object();
       //Single casting
       return (A) instance;
    }

     public A createA2() {
       Object instance = get_A_Object();
       // Duplicate casting or more
       return (A) (A) instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

方法createA1()中的单个转换与方法createA2()中的重复转换有什么不同?他们总是得到相同的结果吗?

编辑:

为了澄清,我的同事问我这行代码:

org.omg.CORBA_2_5.ORB orb = ((org.omg.CORBA_2_5.ORB)org.omg.CORBA.ORB.init((String[])localObject2, localProperties)); 
return (org.omg.CORBA_2_5.ORB)(org.omg.CORBA_2_5.ORB)(org.omg.CORBA_2_5.ORB)(org.omg.CO??RBA_2_5.ORB)(orb);
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 5

这个副本完全是多余的.你只需要施放一次.

这是一个练习.如果你在IDE中加载它,并逐个删除强制转换,它在什么时候开始抱怨你的类型?

事实上,在你修改过的问题中,你根本不需要施放!

org.omg.CORBA_2_5.ORB orb = ((org.omg.CORBA_2_5.ORB)org.omg.CORBA.ORB.init((String[])localObject2, localProperties));
Run Code Online (Sandbox Code Playgroud)

你已orb在作业中声明了类型.