我有一些类似于以下内容的代码:
public class exampleClass {
public void main(){
defineVariable();
nextMethod();
}
void nextMethod(){
list[8] = "threw away";
}
void defineVariable(){
String[] list = {"trivial string","more trivial strings",
"just another trivial string","tr","a","sd",
"godzilla","ate","my","pony","and homework","trivial"};
}
}
我无法访问nextMethod中的列表。如何解决这个问题,将这样一个小数组全局化,但实际的数组是数百个似乎是微不足道的(因此事实上我没有c + p我的实际代码虽然如果这是必要的,我至少不介意。)
非常感谢,并且作为旁注,这是在Android中虽然我怀疑这会影响java代码(我错误地假设这个?)。
无论如何,再次感谢!我最近一直在使用StackOverflow,并且从现在开始只贡献了一些,我会尝试回答尽可能多的问题。
谢谢,
答案 0 :(得分:1)
只需在课堂上宣布。
public class exampleClass {
public void main()
{
nextMethod(defineVariable());
}
void nextMethod(String[] list)
{
list[8] = "threw away";
}
private String tab[] defineVariable()
{
String[] list= {"trivial string","more trivial strings","just another trivial string","tr","a","sd",
"godzilla","ate","my","pony","and homework","trivial"};
return list
}
}
答案 1 :(得分:1)
如果让defineVariable为void并在其自己的范围内创建一个变量,那么该变量在完成执行后就会消失。相反,让defineVariable返回列表,然后使用此列表作为nextMethod()函数的参数。
答案 2 :(得分:1)
存储许多变量的一种巧妙方法是将它们分组到不同的对象中。 这样,相关的变量可以放在同一个对象中,主类中的变量数量减少到可管理的数量。
在下面的示例中,我将变量设为公共。如果您愿意,可以改为创建getter和setter。
public class Actions {
public String humans[] = { "sit", "stand", "eat", "walk", "run", "drive", ride" };
public String dogs[] = { "sit", "stand", "bark", "run" };
public String sharks[] = { "swim", "attack" };
}
public class Equipment {
public String armour[] = { "leather", "chainmail", "plate" };
public String weapon[] = { "sword", "axe", "dagger" };
}