Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java类层次结构中与泛型不兼容的空约束 我正在为Java7到java8的项目迁移我的java代码库。在此过程中,我还将从javax.annotation@Nullable、@NonNull和@ParametersAreNotNullByDefault注释切换到org.eclipse.jdt注释,以便在eclipse中进行null分析(Mars版本4.5.0:Build id:20150621-1200)。 在这样做的过程中,我偶然发现了一种无法编译的情况(因为在基于注释的空检查方面有严格的eclipse设置),因为我无法解释某些事情。我不是想找到一种编译代码的方法,而是想了解为什么会发生错误_Java_Eclipse_Generics_Eclipse Jdt_Type Annotation - Fatal编程技术网

java类层次结构中与泛型不兼容的空约束 我正在为Java7到java8的项目迁移我的java代码库。在此过程中,我还将从javax.annotation@Nullable、@NonNull和@ParametersAreNotNullByDefault注释切换到org.eclipse.jdt注释,以便在eclipse中进行null分析(Mars版本4.5.0:Build id:20150621-1200)。 在这样做的过程中,我偶然发现了一种无法编译的情况(因为在基于注释的空检查方面有严格的eclipse设置),因为我无法解释某些事情。我不是想找到一种编译代码的方法,而是想了解为什么会发生错误

java类层次结构中与泛型不兼容的空约束 我正在为Java7到java8的项目迁移我的java代码库。在此过程中,我还将从javax.annotation@Nullable、@NonNull和@ParametersAreNotNullByDefault注释切换到org.eclipse.jdt注释,以便在eclipse中进行null分析(Mars版本4.5.0:Build id:20150621-1200)。 在这样做的过程中,我偶然发现了一种无法编译的情况(因为在基于注释的空检查方面有严格的eclipse设置),因为我无法解释某些事情。我不是想找到一种编译代码的方法,而是想了解为什么会发生错误,java,eclipse,generics,eclipse-jdt,type-annotation,Java,Eclipse,Generics,Eclipse Jdt,Type Annotation,我在一个包中使用package info.java中的@NonNullByDefault指定了默认非空性 我有一个由抽象类实现的接口,抽象类又由具体类扩展,如下所示: public interface SimulationComponent { <T extends SimulationComponent> List<T> getCorrectSimulationSubComponents(); List<? extends Simulation

我在一个包中使用
package info.java
中的
@NonNullByDefault
指定了默认非空性

我有一个由抽象类实现的接口,抽象类又由具体类扩展,如下所示:

public interface SimulationComponent {

    <T extends SimulationComponent> List<T> getCorrectSimulationSubComponents();

    List<? extends SimulationComponent> getErroneousSimulationSubComponents();
}


public abstract class AbstractSimulationComponent
        implements SimulationComponent {

    @Override
    public List<SimulationComponent> getCorrectSimulationSubComponents() {
        return Collections.emptyList();
    }

    @Override
    public List<SimulationComponent> getErroneousSimulationSubComponents() {
        return Collections.emptyList();
    }
}

public class ConcreteSubSimComponent extends AbstractSimulationComponent {
    public void doSomething() {
    }
}
公共接口模拟组件{
列出GetCorrectionSimulationSubComponents();

List显然,这个bug已经通过针对jdtcore进行的修改得到了解决。
此修复应该出现在eclipse Mars.2(4.5.2)和eclipse neon-M4(4.6.0-M4)中。

您尝试过更新版本的eclipse吗?如果是因为eclipse编译器中的错误,它可能已经修复。我知道neon和Mars中修复了许多与空分析相关的错误。2.看看标记为[null]的错误在eclipse bugzilla中针对jdt core提交。如果你找不到一个适合你的问题,请提交一个bug。mars.1版本似乎仍然有这个bug,而我无法在mars.2rc2和neon-M4版本中复制它。周末提交了一个bug报告,它似乎也适合我所经历的行为,但它是在ver下提交的JDT核心的版本4.6.0。
The method @NonNull List<@NonNull SimulationComponent> getErroneousSimulationSubComponents() from 
 AbstractSimulationComponent cannot implement the corresponding method from SimulationComponent due 
 to incompatible nullness constraints