我有两个接口(interface):MinServer 和 MaxServer。 MaxServer 扩展了 MinServer。那么,下面的代码正常吗?
MinServer server=foo.getUndefinedServer();
...code according to MinServer
if (isThisServerMax){
server=(MaxServer)server;
...code according to MaxServer
}
...code according to MinServer
最佳答案
不,这是不正确的。
此时:
server=(MaxServer)server
...code according to MaxServer
您正在将 MaxServer 转换为 MinServer(这是可以的),但随后将转换结果分配给 MinServer ...所以嗯,您处于开始时的同一点。
如果你像这样改变它:
MaxServer server2 = (MaxServer)server
...code according to MaxServer using server2
那么它就会是正确的。
关于Java 类型转换和作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158463/