Java IntelliJ和Eclipse之间的编译器差异
我有一个类似下面的类。此类在Eclipse build 20090920-1017上编译良好:Java IntelliJ和Eclipse之间的编译器差异,java,eclipse,intellij-idea,Java,Eclipse,Intellij Idea,我有一个类似下面的类。此类在Eclipse build 20090920-1017上编译良好: public class MyScheduledExecutor implements ScheduledExecutorService { ... public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks, long timeout, TimeU
public class MyScheduledExecutor implements ScheduledExecutorService {
...
public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
...
}
public <T> List<Future<T>> invokeAll(Collection<Callable<T>> tasks) throws InterruptedException {
...
}
public <T> T invokeAny(Collection<Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
...
}
public <T> T invokeAny(Collection<Callable<T>> tasks) throws InterruptedException, ExecutionException {
...
}
...
}
公共类MyScheduleXecutor实现ScheduleXecutorService{
...
公共列表invokeAll(收集任务、长超时、时间单位)引发InterruptedException{
...
}
公共列表invokeAll(收集任务)引发InterruptedException{
...
}
公共T invokeAny(收集任务、长超时、时间单位)引发InterruptedException、ExecutionException、TimeoutException{
...
}
公共T invokeAny(收集任务)抛出InterruptedException、ExecutionException{
...
}
...
}
然而,如果我试图用IntelliJ9编译,我会得到一个编译错误。如果我在Java 6中将所有对
的引用替换为,它将仅在IntelliJ中编译,声明了以下方法(例如):
我没有安装Java 5,也无法用Eclipse Java EE Galileo 20090920-1017重现错误(我在Ubuntu下,sun-java5-jdk已从Karmic的存储库中删除,我懒得手动安装),但事实上,我认为Eclipse是正确的
您确定您在IntelliJ IDEA中使用的是JDK 5(而不是符合1.5级标准的JDK 6)?在Java 6中,声明了以下方法(例如):
我没有安装Java 5,也无法用Eclipse Java EE Galileo 20090920-1017重现错误(我在Ubuntu下,sun-java5-jdk已从Karmic的存储库中删除,我懒得手动安装),但事实上,我认为Eclipse是正确的
你确定你在IntelliJ IDEA中使用的是JDK 5吗(而不是符合1.5级法规的JDK 6)?这很烦人。我肯定选择了1.5,但在MacOSXSnowLeopard上,JDK1.5实际上是文件系统上1.6的符号链接。即使指定IntelliJ自己的1.5JDK而不是system JDK,最终也会使用system 1.6JDK。Harumph.为了子孙后代,我能够按照此链接上的说明在雪豹10.6.2上安装Java 1.5(替换最新版本的Java 1.5,在本文撰写时更新5):我理解你的痛苦,而且看起来苹果应该为这个肮脏的符号链接负责。难道你不能在雪豹上安装一个真正的JDK1.5吗?那真烦人。我肯定选择了1.5,但在MacOSXSnowLeopard上,JDK1.5实际上是文件系统上1.6的符号链接。即使指定IntelliJ自己的1.5JDK而不是system JDK,最终也会使用system 1.6JDK。Harumph.为了子孙后代,我能够按照此链接上的说明在雪豹10.6.2上安装Java 1.5(替换最新版本的Java 1.5,在本文撰写时更新5):我理解你的痛苦,而且看起来苹果应该为这个肮脏的符号链接负责。你不能在雪豹上安装一个真正的JDK1.5吗?
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException {
...
}
Name clash: The method invokeAll(Collection<? extends Callable<T>>) of type
SingleScheduledExecutor has the same erasure as invokeAll(Collection<Callable<T>>) of
type ExecutorService but does not override it
<T> T invokeAny(Collection<? extends Callable<T>> tasks)
throws InterruptedException,
ExecutionException
<T> T invokeAny(Collection<Callable<T>> tasks)
throws InterruptedException,
ExecutionException