java - ((某事).this).something_else

标签 java

谁能解释一下下面这个表达式的作用?

System.out.println(((Window)this).size)

假设我们有这个:

System.out.println(this.size)

我明白这个表达式是做什么的,但是我不明白(Window)是做什么的,所以问题是(Window)是什么意思在关键字 this 之前(假设 Window 是我在此示例中使用的类的父类(super class))?

最佳答案

(Window) this 表达式将 this 引用转换为 Window 类。 cast 将对象引用从一个类转换为另一个(相关)类。例如,在 Java 中,经常将 Graphics 对象转换为 Graphics2D 对象,如下所示:

Graphics g;
Graphics2D g2d = (Graphics2D) g;

您认为 Window 是相关类的父类(super class)是正确的;如果它是一个不相关的类,你会得到一个编译时错误。

转换为子类(如上例中的图形对象)可以为您提供更多功能。例如,Graphics2D 对象具有 Graphics 对象没有的方法(例如,fillsetRenderingHint)。

关于java - ((某事).this).something_else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326676/

相关文章:

java - lwjgl 在创建 Font 对象时卡住

java - 单元测试之间数据库未删除

java - 非 C 项目的跨平台自动构建

java - 当构造函数具有类的类型时,这意味着什么?

java - JPA2.1 - 调用返回 CLOB 的存储过程

java - 有没有办法缩放 SWT Composite 及其子项?

java - netty 堆栈关闭后重用 NioEventLoopGroup

java - 如何记录并重新抛出整个类

java - 是否可以在 logback 中禁用特定附加程序/记录器的 MDC 日志记录字段?

java - Volatile 变量与 Atomic 变量有什么区别?