的类型是错误的

我在Netbeans中遇到了一个奇怪的编译错误。

我正在创建一个Experiment对象并在其上调用run方法。

Experiment experiment=new Experiment(); Result result = experiment.run(t, steps, trials, breadth, depth, seed, distribution); 

编译器抱怨说

运行类型(Maplayout,int,int,int,int,long,int)是错误的。

我的方法签名看起来正常:

 public Result run(MapLayout t, int steps, int trials, int breadth, int depth, long seed, int distribution) 

我已经仔细检查了我要传递的参赛者,他们看起来都很正常。 如果我通过:

  experiment.run(null, 1,1,1,1,1l,1); 

我在run方法上得到了相同的编译错误。

我错过了明显的东西吗? 有太多的Javascript损害了我的大脑?

我有同样的问题,解决方案在我的情况下非常简单。

案子:
我从我正在工作的项目的包中复制/粘贴来自另一个项目的一些类。
他们中的一些人有旧包装声明,编译器没有抱怨(因为他的原因)。
当我使用返回类型的方法之一’错误的打包’类时出现此错误。
(类型错误)

解决方案
为了解决这个问题,我将包声明更改为正确的!

我在NetBeans 8.0上遇到同样的问题。 看来如果你有这个结构:

ClassA

 public interface ClassA { } 

ClassB

 import ClassA; public class ClassB implements ClassA { } 

ClassC

 import ClassB; public class ClassC extends ClassB { } 

ClassD

 import ClassC; import ClassA; public class ClassD { public ClassA getClassA() { return new ClassC(); // error here } } 

你收到这个错误:

 path\to\ClassC.java:7: error: The type of new ClassC() is erroneous return new ClassC(); ^ 

因为ClassC没有显式实现ClassA ,所以编译器不知道类型是否正确。 我通过使ClassC实现ClassA修复它,即使它已经扩展了ClassB

新的ClassC

 import ClassA; import ClassB; public class ClassC extends ClassB implements ClassA { } 

在我的情况下(Netbeans 8.0.2)重启帮助

干净吧,再次建立项目。 大多数情况下,这是Netbeans特有的错误。

您可能需要在Experiment类中导入Result。

我只是遇到了同样的问题,正因为如此。

我在Netbeans 7.4上遇到过这个问题。 试图重新打开IDE,清理和重建,但没有解决。 在我的例子中,erroneuos类上有一个implements子句。 我删除了这个子句,再次声明它,因此错误消失了。