[英]Java: ClassCastException - java.lang.Class cannot be cast to
[英]“Cannot be cast to java.lang.Class”, namely: which type is not a class
这似乎是一个愚蠢的问题(因为它可能是非常特定于项目的),但在这种情况下,它已足够普遍:
我正在运行一段代码,该代码给出了ClassCastException
,并以我写为标题的错误消息出现。 这里提到的类型转换是从类型为java.lang.reflect.Type
的对象到Class<?>
。
除了原始类型,Java中的哪种类型不是类?
谢谢你的回答
Class
是Type
但Type
不一定是Class
,因为Class
实现Type
。
基本上,您的myType
也可以是GenericArrayType
, ParameterizedType
, TypeVariable
或WildcardType
接口的任何实现类,因为它们都扩展了Type
接口。
尝试打印myType.getClass()
以查看您的意思是类型:您将获得Class<TheSaidType>
。
从Type的Javadoc中,您可以看到它具有许多实现类型。
All Known Subinterfaces:
GenericArrayType, ParameterizedType, TypeVariable<D>, WildcardType
All Known Implementing Classes:
Class
子接口是使用内部数据结构类实现的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.