Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在方法之间共享变量?_Java_List_Methods_Sharing - Fatal编程技术网

Java 如何在方法之间共享变量?

Java 如何在方法之间共享变量?,java,list,methods,sharing,Java,List,Methods,Sharing,我见过几个线程用于在类之间共享变量,但我找不到一个用于方法的线程。可能吗 例如,在方法A中,我读取一个csv文件并将内容放入列表中 在方法B中,我想对在方法A中创建的列表进行排序。如何使用在方法A中创建的列表?在方法中声明的变量是实例变量,它们的作用域仅在方法本身内。不能从另一个方法访问在一个方法中声明的变量 但是,如果在方法外部和类本身内部声明列表,则可以将列表传递到这两个方法中,或者将它们作为类的实例变量进行访问。它们都将是相同的列表,因为它们只是对同一对象的不同引用。您可以将列表声明为类的

我见过几个线程用于在类之间共享变量,但我找不到一个用于方法的线程。可能吗

例如,在方法A中,我读取一个csv文件并将内容放入列表中


在方法B中,我想对在方法A中创建的列表进行排序。如何使用在方法A中创建的列表?

在方法中声明的变量是实例变量,它们的作用域仅在方法本身内。不能从另一个方法访问在一个方法中声明的变量


但是,如果在方法外部和类本身内部声明列表,则可以将列表传递到这两个方法中,或者将它们作为类的实例变量进行访问。它们都将是相同的列表,因为它们只是对同一对象的不同引用。

您可以将列表声明为类的变量(在方法之外),以便它可以在整个类中使用,也可以在a方法中声明它并将其传递给其他方法,如下所示:

public static void main(String[] args)
{
    A();
}

public static void A()
{
   ArrayList<String> stral = new ArrayList<String>();
   //fill ArrayList
   B(stral);
}

public static void B(ArrayList<String> al)
{
    //do whatever you want with al
}
publicstaticvoidmain(字符串[]args)
{
A();
}
公共静态无效A()
{
ArrayList stral=新的ArrayList();
//填充阵列列表
B(stral);
}
公共静态无效B(ArrayList al)
{
//你想对艾尔做什么就做什么
}

希望这有帮助

是的,它将与非静态方法一起工作,您只需访问它们,因为它是静态的,所以与主方法略有不同。如果A和B都是非静态的,则它们之间的关系不会改变。