我的同事问了我一个我自己找不到最终答案的问题,这个问题是关于对象转换的。
假设我有一个类A,和一个工厂类,在工厂类中,我想创建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;
}
}
我的问题是:
方法 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.CORBA_2_5.ORB)(orb);
最佳答案
那个重复是完全多余的。您只需施放一次。
这是一个练习。如果您将其加载到 IDE 中,并逐一删除强制转换,那么它什么时候开始提示您的类型?
事实上,在您修改后的问题中,您根本不必进行强制转换!
org.omg.CORBA_2_5.ORB orb = ((org.omg.CORBA_2_5.ORB)org.omg.CORBA.ORB.init((String[])localObject2, localProperties));
您已在赋值中声明了 orb
的类型。
关于java - 重复类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12580859/