Java 类型转换和作用域

标签 java

我有两个接口(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/

相关文章:

java - 如何从 Maven 存储库中的 jar 中删除版本信息

java - JAXB、REST 将 XML 对象发送到远程 URL

java - 如何在 Java 中使用 BufferedReader 读取下一行?

java - Android 使用内容提供程序从 Assets 文件夹发送图像?

java - 如何设置应用程序目录的对象路径

java - 是否可以使用 plafyramework2 for java 和 groovy 模板?

与 Perl 相比,Java 性能问题

java - Android 菜单膨胀错误之前的条件检查

java - SharedPreferences 结构和 ovoid 用户清除此

java - HTTPClient错误异常: 400 Bad Request using Spring REST template