所以我在main方法中创建了一个数组,它从文件读取输入然后将其添加到数组中,它还使用命令阅读器检查文件是否有数据。如何使任何特定的数组元素可用于其他方法?拿一个名为array []的数组,如何访问数组[1]并在其他方法中使用它?谢谢,对不起,如果这是一个明显的问题,但我对java很新。
修改
源代码:
import java.io.File;
// Reads commands from input file
public class Example {
public static void main(String[] args) {
if (args.length < 1) {
System.out.println("No args given.");
System.exit(1);
}
// reads every argument given as a filename
for (String filename : args) {
File file = new File(filename);
//creating a command reader from a file
CommandReader Reader = new CommandReader(file);
// reads every line of the file
while(Reader.hasNext()) {
// gets the given command from the next line
String[] command = reader.next();
}
}
}
}
我想在主类之外使用这些。我有一个命令阅读器类,它以这样的方式对它们进行格式化,以便给出类似的命令,但这对于在main之外使用数组并不重要。谢谢
command[0] => "add"
command[1] => "AlbinoMilk's great adventure"
command[2] => "AlbinoMilk"
command[3] => "250"
答案 0 :(得分:1)
此处的关键字是范围。变量的范围定义,变量是可见的并且可以使用。通常,Java中变量的范围被定义为围绕变量定义的最里面的花括号。
有几种方法可以访问当前范围之外的变量。
<div class="container">
<div>
<p id="one">Div One</p>
</div>
<div>
<p id="two">Div Two</p>
</div>
</div>
#one {
width:60px;
background-color:green;
padding:10px;
cursor:pointer;
}
#two {
width:60px;
background-color:green;
padding:10px;
display:none;
cursor:pointer;
}
$(document).ready(function () {
$('#one').click(function () {
$(this).hide();
});
$('#one').click(function () {
$('#two').show();
});
$('#two').click(function () {
$(this).hide();
});
$('#two').click(function () {
$('#one').show();
});
});
中有一个局部变量,只需将其向上移动一级,然后将其定义为该类的(私有)成员。现在,您班级中的所有功能都可以访问它。只有在将来帮助类或使代码更具可读性时才应该这样做。通常,尽量保持变量范围尽可能小,以提高可维护性。=INDEX('Sheet1'!$A:$E,MATCH(A13,'Sheet1'!$A:$A,0)+1,5)
实现注册访问某些变量。然后其他类可以通过此接口访问变量。在您的情况下,最好采用第一种(或第二种)方式。
答案 1 :(得分:0)
只需将其作为参数传递给其他函数即可。
foo(int[] array) {//}
从主
中调用它foo(array1);
答案 2 :(得分:0)
有两种方法可以实现这一目标:
在主方法之外将您的数组声明为类中的字段:
public class SomeClass {
private int[] array;
...
...
public static void main(String[] args) {
array = ....
}
...
}
将其作为参数传递给其他需要它的方法
答案 3 :(得分:0)
在我的情况下,我的主要方法中有一个ArrayList,如下所示:static ArrayList<MyClass> myclass= new ArrayList<MyClass>();
。我从主要方法添加随机值。然后,我需要从另一个类访问ArrayList,因此,方法是在要在其中使用它的类中创建一个构造函数,如下所示:
ArrayList<MyClass> myclass;
public AnotherClass(ArrayList<MyClass> myclass) {
this.myclass= myclass;
}
// the ArrayList used in other methods here
所以我可以在主要使用ArrayList作为参数的情况下创建AnotherClass
的对象:AnotherClass ac = new AnotherClass(myClass);