谁能解释一下下面这个表达式的作用?
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
对象没有的方法(例如,fill
和 setRenderingHint
)。
关于java - ((某事).this).something_else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326676/