And*_*ewG 3 java eclipse debugging type-conversion
我确定我错过了一些简单但这个问题似乎绝对愚蠢.
private static void method501(char ac[])
{
char ac1[] = ac.clone();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在eclipse中char ac1[] = ac.clone();抛出一个类型不匹配错误,告诉我我无法将char数组转换为Object?
这是什么原因?它没有在最新版本的eclipse 上给我同样的错误,所以想知道它是否只是这个旧版本给我的问题.
如果您的编译器设置针对非常古老的源兼容性,则会在Eclipse中发生这种情况.
兼容级别为1.5或更高,它很好 - 但如果您将源兼容级别设置为1.3或1.4,您将收到此错误,因为早期版本的Java语言规范未指定T[].clone()返回T[].
来自JLS 1.0第10.7节的文本:
数组类型的成员是以下所有成员:
- [...]
- public方法
clone,它在类中重写同名方法,Object并且不会抛出任何已检查的异常
Java 8 JLS中的等效文本:
数组类型的成员是以下所有成员:
- [...]
- public方法
clone,它在类中重写同名方法,Object并且不会抛出任何已检查的异常.数组类型的clone方法的返回类型T[]是T[].
进入项目属性并检查它是使用默认设置还是项目特定设置,并修复相应的设置(项目特定的设置或工作区设置)以使用更新的源兼容性.
我怀疑你会发现,使用当前设置,你将无法使用泛型或其他1.5+功能.
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |