java奇怪的类型转换((ClassPathXmlApplicationContext)上下文)。close();
我正在学习java和spring,我有以下代码,我不了解类型转换是如何工作的:
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("com/voja/spring/test/beans/beans.xml");
((ClassPathXmlApplicationContext) context).close();
}
}
因此,以下是:
((ClassPathXmlApplicationContext) context).close();
这是我不明白的
我的想法是应该是:
(ClassPathXmlApplicationContext) context.close();
但这是一个错误
它现在的样子就是它应该是什么样子,但我不明白这个方法是如何在它上面被调用的,为什么(ClassPathXmlApplicationContext) context
在括号里,再一次,一个方法是如何被附加到它上面的
# 1 楼答案
事情是这样的:表达“从右到左”
所以,当你
编译器假定foo必须属于一个类,该类有一个返回某些内容的bar()方法;返回值应被转换为X
但是你想把foo转换成X,因为bar()存在于X上,而不是foo上