有办法做到这一点吗?或者我是否必须创建一个类并实现IJavaElement?
答案 0 :(得分:3)
您不能将任意类型的任何对象强制转换为任何其他任意类或接口类型。
强制转换(从一种非基本类型转换为另一种非基本类型)不会进行任何神奇的自动转换。当你将A
类型的对象转换为类型B
时,这意味着你告诉编译器“看,我在这里有一些A
类型的对象,我希望你把它看作是B
;不要给我一个类型错误,因为我知道的更好“。
类型检查仍将完成,但在运行时而不是编译时。如果在运行时,该对象不是B
,那么您将获得ClassCastException
。
假设您正在讨论类java.lang.Class
,那么不,您不能将其强制转换为IJavaElement
(无论来自何处),因为IJavaElement
不是超类,也不是实现的接口按java.lang.Class
。如果您尝试进行演员表,那么在运行程序时,您将获得ClassCastException
。