无法在Java中调用方法

无法在Java中调用方法,java,methods,Java,Methods,我创建了一个类。在类内部,我创建了一个名为“createVesser()”的方法,该方法应返回一个字符串数组。我想从同一个类调用该方法,并将返回的字符串数组存储在另一个字符串数组变量中(甚至不确定是否可以这样做) 无论如何,当我调用该方法时,IDE会导致一个错误,认为我正在尝试创建另一个同名方法,并建议我更改名称。有人能告诉我我做错了什么吗?换句话说,为什么我不能调用createVesser()方法?(注意:我将发布createVesser()方法中的所有代码,只是为了添加上下文,即使回答我的问

我创建了一个类。在类内部,我创建了一个名为“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();
}