You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在static void main中调用指定方法?请排查方法错误

问题分析与解决方案

首先,咱们先看看你这个方法里存在的几个小问题:

  • 方法接收了一个String[] contestants参数,但整个方法里根本没用到它,属于冗余参数,完全可以去掉;
  • 在for循环内部每次都新建Scanner对象,这会造成不必要的资源消耗,应该把Scanner的实例化放到循环外面;
  • Java方法名规范是小驼峰命名,getcontestants应该改成getContestants;
  • 数组声明String name[]虽然合法,但更推荐String[] name的写法,符合主流编码规范。

修正后的方法代码

import java.util.Scanner;

public class ContestantHandler { // Java代码必须包裹在类中,这里用示例类名
    public static String[] getContestants() {
        int numContestants = 8;
        String[] names = new String[numContestants];
        Scanner ip = new Scanner(System.in); // 将Scanner实例化移到循环外

        for (int j = 0; j < numContestants; j++) {
            System.out.println("Enter contestant's name");
            names[j] = ip.nextLine();
        }
        ip.close(); // 使用完毕后关闭Scanner,释放资源
        return names;
    }

    // main方法中调用的示例
    public static void main(String[] args) {
        // 调用方法获取选手名字数组
        String[] contestantNames = getContestants();
        
        // 遍历输出验证结果
        System.out.println("\nAll contestants:");
        for (String name : contestantNames) {
            System.out.println("- " + name);
        }
    }
}

调用说明

在main方法里调用非常直观:

  1. 因为getContestants是静态方法,和main在同一个类中的话,直接写getContestants()就能调用;如果不在同一个类,就用类名.getContestants()的形式;
  2. 将方法返回的字符串数组赋值给一个变量(比如contestantNames);
  3. 之后你可以对这个数组做任何操作,比如遍历、筛选、存储到集合中等。

另外要注意:所有Java方法都必须放在类的内部,所以上面的代码我添加了一个示例类作为容器,你可以根据实际需求修改类名。

内容的提问来源于stack exchange,提问作者Amadou Toure

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:24:51