gpt4 book ai didi

java - 尝试让 Java 函数根据传递给它的字符串参数返回一个数组

转载 作者:行者123 更新时间:2023-12-02 10:43:18 25 4
gpt4 key购买 nike

这就是我正在尝试做的事情;我正在尝试编写一个小程序,该程序使用一个函数来获取一个包含基于所选部门的部门成员的数组。大约有40个部门,每个部门有1至4名成员。这就是我所做的,但我似乎无法解析变量:

来自主干:

String[]names = initial(department)

Departments 是传递给函数的部门的名称。在我的函数中:

public static String[] initial (String responsibleDepartment) {

if (responsibleDepartment.equals("Accounts Receivable")) {
String[] assignInitial = {"Mike Davis", "Ben Jones", "Ann Smith"}
}

if (responsibleDepartment.equals("Customer Service")) {
String[] assignInitial = {"Mary Wexler", "Turd Ferguson"}
}

// and 38 more if statements with the rest of the departments. Finally I have:
return assignInitial;
}

按照目前的情况,“assignInitial 无法解析为变量”(这就是 return 语句所说的内容。)如果我尝试在第一个“if”语句之前初始化变量,然后删除第一个“if”语句中的 allocateInitial 旁边的 String[] 表示“数组常量只能在初始值设定项中使用”。我确信有更好的方法可以做到这一点,但我似乎无法利用网上找到的内容取得任何进展。有接受者吗?

非常感谢!-蒙克

最佳答案

问题是您正在声明每个 String[] assignInitial里面 if语句,因此该变量的范围是 if 的局部范围。陈述。之外if语句,该变量未声明。

要解决此问题,请从 if 中提取声明范围并进入方法范围。您必须添加 new String[]在每个数组前面,因为数组常量只能在初始值设定项中使用。

public static String[] initial (String responsibleDepartment) {

String[] assignInitial = null;

if (responsibleDepartment.equals("Accounts Receivable")) {
// Note the new String[] below
assignInitial = new String[] {"Mike Davis", "Ben Jones", "Ann Smith"};
}

if (responsibleDepartment.equals("Customer Service")) {
assignInitial = new String[] {"Mary Wexler", "Turd Ferguson"};
}

// Other if statements here

return assignInitial;

请注意,可能还有其他更简单的方法来查找 assignInitial 的值比这个系列if声明。例如,您可以构建一个 switch声明或 Map<String, String> .

关于java - 尝试让 Java 函数根据传递给它的字符串参数返回一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47701187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com