无法在Java中调用方法
我创建了一个类。在类内部,我创建了一个名为“createVesser()”的方法,该方法应返回一个字符串数组。我想从同一个类调用该方法,并将返回的字符串数组存储在另一个字符串数组变量中(甚至不确定是否可以这样做) 无论如何,当我调用该方法时,IDE会导致一个错误,认为我正在尝试创建另一个同名方法,并建议我更改名称。有人能告诉我我做错了什么吗?换句话说,为什么我不能调用createVesser()方法?(注意:我将发布createVesser()方法中的所有代码,只是为了添加上下文,即使回答我的问题可能没有必要)无法在Java中调用方法,java,methods,Java,Methods,我创建了一个类。在类内部,我创建了一个名为“createVesser()”的方法,该方法应返回一个字符串数组。我想从同一个类调用该方法,并将返回的字符串数组存储在另一个字符串数组变量中(甚至不确定是否可以这样做) 无论如何,当我调用该方法时,IDE会导致一个错误,认为我正在尝试创建另一个同名方法,并建议我更改名称。有人能告诉我我做错了什么吗?换句话说,为什么我不能调用createVesser()方法?(注意:我将发布createVesser()方法中的所有代码,只是为了添加上下文,即使回答我的问
您需要将通话更改为以下状态:
String[] carry = createVessel();
Java类
scope不能像您那样有任何赋值,只能通过上面的方法您不能像以前那样从类内部调用方法
您必须从方法内部(如构造函数)或从主函数执行此操作。类的块结构是两级的:
class {
... declarations of fields and methods
void someMethod() {
... statements
}
}
您将调用放在需要声明的位置。IDE然后决定您要进行方法声明
因此,将调用放在一个方法中,例如程序入口点:
public static void main(String[] args) {
... call here, on an instance
}
直接解决方案:
String[] carry = createVessel();
我准备了一个示例,您可以看到它将编译并运行(如果您有一个main方法),只需遵循以下链接即可:它将使您达到以下目的:
为什么?
问题是不能直接在类的主体中执行对字段的赋值——如果它不在字段的直接声明中。为此,您可以使用构造函数编写如下内容:
public GameControl(){
carry = createVessel();
}
然后您可以继续使用String[]carry=newstring[2]因为将在createVesser()
方法内创建的字符串[]
将覆盖它。另一种方法是使用主方法:
public static void main(String[] args) {
carry = createVessel();
}
当然,您还需要将static
分配给String[]carry
和方法createvesser()代码>
如果你还有其他问题,请随时发表评论-我稍后会再回答这个问题。另外,我可以看出您对Java不是很熟悉,所以Oracle教程可能会有所帮助
public static void main(String[] args) {
carry = createVessel();
}