这就是我想要做的;我正在尝试编写一个小程序,该程序使用一个函数来获取包含基于所选部门的部门成员的数组。大约有40个部门,每个部门有1-4个成员。所以我做了这个,但是我似乎无法解析为一个变量:
从主要:
String[]names = initial(department)
部门是传递给功能的部门的名称。在函数中,我有:
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”语句之前初始化变量,然后删除String []的初始化在第一个“ if”语句中的assignInitial旁边,然后显示“数组常量只能在初始化程序中使用”。我相信有更好的方法可以做到这一点,但是我似乎无法在网上找到任何进展。有没有人?
非常感谢!
-蒙克
参考方案
问题在于您要在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。
Java:找到特定字符并获取子字符串 - java
我有一个字符串4.9.14_05_29_16_21,我只需要获取4.9。数字各不相同,所以我不能简单地获得此char数组的前三个元素。我必须找到最正确的.并将其子字符串化直到那里。我来自Python,因此我将展示Python的实现方法。def foobar(some_string): location = some_string.rfind('.&…Java-固定大小的列表与指定初始容量的列表之间的差异 - java
我在理解这一点上遇到了问题。当我们做 List list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List list2 = new A…从方法返回数组-Java - java
private static Coordinate[] getCircleCoordintaes() { Coordinate coordinates[] = {new Coordinate(0, 0)}; return coordinates; } 以上程序工作正常。在上面的程序中,返回的坐标数组首先初始化了数组使用这条线Coordinate coordi…Java Double与BigDecimal - java
我正在查看一些使用双精度变量来存储(360-359.9998779296875)结果为0.0001220703125的代码。 double变量将其存储为-1.220703125E-4。当我使用BigDecimal时,其存储为0.0001220703125。为什么将它双重存储为-1.220703125E-4? 参考方案 我不会在这里提及精度问题,而只会提及数字…java:继承 - java
有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…