Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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 Eclipse正在生成一个已经存在的构造函数_Java_Eclipse - Fatal编程技术网

Java Eclipse正在生成一个已经存在的构造函数

Java Eclipse正在生成一个已经存在的构造函数,java,eclipse,Java,Eclipse,我正在用libgdx库做一个游戏。我有一个叫做World的类和一个叫做WorldTile的类 在World类中,我创建了一个新的WorldTile,Eclipse告诉我构造函数是未定义的,但它是未定义的。如果我采取可能的纠正措施来创建这样的构造函数,就会在WorldTile中导致一个错误,即存在重复的方法 World.java中的代码: WorldTile.java中的代码: 第二个构造函数是由Eclipse自动生成的,表明我实际上编写了正确的构造函数,但Eclipse声称它不存在 根据评论中的

我正在用libgdx库做一个游戏。我有一个叫做World的类和一个叫做WorldTile的类

在World类中,我创建了一个新的WorldTile,Eclipse告诉我构造函数是未定义的,但它是未定义的。如果我采取可能的纠正措施来创建这样的构造函数,就会在WorldTile中导致一个错误,即存在重复的方法

World.java中的代码:

WorldTile.java中的代码:

第二个构造函数是由Eclipse自动生成的,表明我实际上编写了正确的构造函数,但Eclipse声称它不存在


根据评论中的建议,我重新启动了Eclipse,并且成功了。你试过把它关掉再打开吗?感谢所有的建议。

由于两个构造函数的参数类型相同,编译器不知道使用哪个构造函数。同一对象的不同构造函数必须具有不同的参数集。此外,如果您要传递一段数据来构造对象,通常您希望实际使用该数据执行某些操作

编辑:为了快速修复,只需删除第二个构造函数


EDIT2:因为我最初似乎误读了你的帖子……我的建议是确保你将适当的类型传递给构造函数。

要为一个类提供两个构造函数,参数类型必须不同。有两个构造器

public MyClass(int a, int b) { // your code } along with

public MyClass(int c, int d) { // your code } 
行不通。因为两个构造函数都将接受两个整数。所以Java不知道选择哪一个。如果methodName和parameterList的签名组合不同,则类可以有各种构造函数

所以

完全没问题。明白为什么吗

同样,正如mmitaru所建议的,您通常希望创建(即实例化)一个对象并对其进行引用,以便可以使用/操作它

myObjType obj1; // declaration : obj1 should hold, so to say reference to objects of type myObjType 

new myObjType(...) // actually creates such an object (where ... are the parameters the constructors expects) 

myObjType obj1 = new myObjType(...) // declaration and initialization in a single step

obj1.aMethod() // calls the method aMethod on the object of type myObjType 

您正在将renderZone传递到参数中,但没有显示或告诉我们它是什么类型。与传入的其他变量相同。向我们显示您正在传递的值的类型,以避免重现您的错误。请添加World和WorldTile,包括其进口。有没有可能你写了几个名为WorldTile的类?只是个旁注。你传入了参数isHidden,但不管参数是什么,你总是将字段isHidden设置为true。它们具有相同的签名我认为第二个构造函数实际上是在单击纠正操作后由Eclipse生成的。啊,我现在明白了…我不确定。因为第二个构造函数是由Eclipse生成的,我只能猜测,我不可能使用错误的数据类型
public MyClass(int a, int b) { // your code } along with

public MyClass(int c, int d) { // your code } 
MyClass(int a, int b) { // your code } along with 
MyClass(int a, int b, int c)  { // your code } 
myObjType obj1; // declaration : obj1 should hold, so to say reference to objects of type myObjType 

new myObjType(...) // actually creates such an object (where ... are the parameters the constructors expects) 

myObjType obj1 = new myObjType(...) // declaration and initialization in a single step

obj1.aMethod() // calls the method aMethod on the object of type myObjType