将对象视为另一个对象

时间:2015-01-04 11:02:03

标签: java object casting

首先,我想说这是一个只有化妆品的问题,因为你会马上理解。 我有一个对象,从现在开始我想要它,直到我重新调用它,java会将该对象视为另一个对象,而不是我一次又一次地抛出它。 例如,我有这样的事情:

Object obj = new SomeObject();
((SomeObject) obj).someMethod1();
((SomeObject) obj).someMethod2();
((SomeObject) obj).someMethod3();

相反,我想做类似的事情:

Object obj = new SomeObject();
obj treatas SomeObject; // This is the line that I dont even know if exist in java
obj.someMethod1();
obj.someMethod2();
obj.someMethod3();

1 个答案:

答案 0 :(得分:4)

您必须创建一个新变量(或首先将obj声明为SomeObject类型):

Object obj = new SomeObject();
SomeObject sobj = (SomeObject) obj;
sobj.someMethod1();
sobj.someMethod2();
sobj.someMethod3();

在更一般的情况下,如果您不确定objSomeObject的实例:

if (obj instanceof SomeObject) {
    SomeObject sobj = (SomeObject) obj;
    sobj.someMethod1();
    sobj.someMethod2();
    sobj.someMethod3();
}