gpt4 book ai didi

java - 用括号在Java中分配变量

转载 作者:行者123 更新时间:2023-12-01 18:37:59 26 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




在 Java 中,为什么某些赋值变量的语句的值部分在括号中?我从来没有遇到过这种格式,也不知道为什么或何时使用它。这是具有这种格式的一行代码的示例:

JPanel mainPanel = (JPanel) this.getContentPane();

在值前面加上括号有什么作用?我唯一的猜测是它是某种类型的自动类型转换?请帮忙,因为我开始遇到很多这样的陈述。

最佳答案

括号是一个类型转换。
在这种情况下,它会尝试从 this.getConentPane() 解释返回的对象。作为 JPanel .

因为在 Swing 中,getContentPane()方法可以返回从内容 Pane 的基类派生的任何对象,它总是将对象作为该基类的实例返回。

为了将返回的对象寻址为 JPanel ,首先需要转换为 JPanel .

但是,只有当方法返回的对象派生自或是您将其转换为的类型的实例时,才能做到这一点。

尝试将对象转换为不是对象类型的类型,或者不是它继承自的类型,或者在接口(interface)未实现接口(interface)的情况下,将引发异常。

因此,如果您要这样做:

//this cast is impossible, since the object returned by this.getContentPane()
//does not derive of the "float" class
float impossible = (float) this.getContentPane();

你会得到一个异常(exception)。

为了完全理解发生了什么,我建议研究类继承。

关于java - 用括号在Java中分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com