在Java中,我有一个带签名的函数,其中传入了一个Type:
public Object convert(Object object, Type type) {
}
Run Code Online (Sandbox Code Playgroud)
在函数内部,我想确定Type是否为String,但是当我这样做时
String.class.equals(type.getClass())
Run Code Online (Sandbox Code Playgroud)
Android Studio告诉我'equals()' between objects of inconvertible types 'Class<capture of ? extends Type>' and 'Class<String>'.
我究竟做错了什么?
这不是javac错误 - 它是IDE提供的警告(或错误,具体取决于您的设置).
也就是说,在这种情况下,警告是有用的.您要问的type.getClass()是返回的类对象是否等于文字所代表的类对象String.class.鉴于这Type不是一个超类String,我现在可以告诉你,答案是错误的:Type类和String类不同.您的IDE试图告诉您相同的内容.
如果你想弄清楚是什么类型是否实例的type代表String类,那么你并不需要getClass():
String.class.equals(type)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |