Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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_Variables_Io_Bufferedreader - Fatal编程技术网

Java在另一个方法中调用变量

Java在另一个方法中调用变量,java,variables,io,bufferedreader,Java,Variables,Io,Bufferedreader,我是Java编程新手,我有一个简单的问题,但我不能做,因为我不知道如何在Java上编写它。提前谢谢 我想在另一个方法中调用变量值 public static void ReadIN() throws Exception{ BufferedReader br = new BufferedReader(new FileReader("test.txt")); String line = null; while ((line = br.readLine

我是Java编程新手,我有一个简单的问题,但我不能做,因为我不知道如何在Java上编写它。提前谢谢

我想在另一个方法中调用变量值

public static void ReadIN() throws Exception{
        BufferedReader br = new BufferedReader(new FileReader("test.txt"));
        String line = null;

        while ((line = br.readLine()) != null) {
          String[] values = line.split(","); // want to be call
          for (String inputIN : values) {
          inputIN = values[2];
          }
        }


        br.close(); 
      }


      public static void checkStatus() {

        // call variable 'values' here

      }

不确定你到底需要什么。无论如何,试试这个:

public static void readIN() throws Exception{
    BufferedReader br = new BufferedReader(new FileReader("test.txt"));
    String line = null;

    while ((line = br.readLine()) != null) {
        String[] values = line.split(","); // want to be call
        for (String inputIN : values) {
            inputIN = values[2];
        }
        checkStatus(values);
    }
    br.close(); 
}


public static void checkStatus(String[] values) {
    // call variable 'values' here
    System.out.println(values);
}
顺便说一句,遵循命名约定

编辑:以下代码应在Test.java中成功编译

import java.io.*;

public class Test
{
    public static void main(String[] args) throws Exception {
        Test.readIN();
    }

    public static void readIN() throws Exception {
        BufferedReader br = new BufferedReader(new FileReader("test.txt"));
        String line = null;    
        while ((line = br.readLine()) != null) {
            String[] values = line.split(",");
            Test.checkStatus(values);
        }
        br.close(); 
    }


    public static void checkStatus(String[] values) {
        // call variable 'values' here
        System.out.println(values);
    }
}

您不能访问拥有方法变量的方法之外的方法变量。如果变量直接属于某个类,则可以通过其他方法访问这些变量。

您不能这样调用变量。一种方法是全局声明变量值(在main或任何其他函数之外,在包和导入的正下方顶部)。这样,所有其他函数都可以使用变量值。另一种方法是从main调用checkStatus函数并发送变量值。下面的例子

在主要功能方面:

checkStatus(values);
调用传递变量值的函数checkStatus。JAVA是一种严格的只传递值的语言。发生的情况是调用函数checkStatus,并使用其中的相同值创建变量值的副本,并将其传递给函数

功能:

checkStatus(values);
public static void checkStatus(String[] values) 
{
    // call variable 'values' here
    // Here you can make use of the variable values
}

如果您计划修改函数checkStatus中的变量值,并希望它在main中一起被修改,那么您可以像这样将值返回main

大体上

String[] receive;
receive = checkStatus(values);
在函数中:

public static String checkStatus(String[] values) 
{
     //Once you are done with your codes
     return values;
}

希望这有帮助。如果您需要进一步的澄清或帮助,请发表评论。

那么您到底想要什么?我遇到了错误,必需:字符串[]找到:无参数原因:如果您将方法声明为
checkStatus
public static void checkStatus(字符串[]值),则实际参数列表和正式参数列表的长度不同然后每次调用
checkStatus
时,都需要一个
字符串[]
参数。因此,请确保您正在编写类似于
checkStatus(values)
而不是
checkStatus()
是的,我在我的main方法中将其称为obj.checkStatus(values);请参见编辑。事实上,我不认为会有编译错误。请检查您是否真的正确声明和调用了该方法。试着编译我新添加的代码,看看是否还有问题。我只需要从方法ReadIN中获取变量'values'的值,然后我将在方法checkStatus中创建一个函数,将其与某物进行比较。然后不需要使用return方法。用我贴在答案上面的方法。只需将值发送过来并用于比较。因为如果不先将值从ReadIN发送到checkStatus,就无法从ReadIN访问变量值。或者就像我说的,您可以始终将值设置为全局变量,以便所有其他函数都可以访问它。相同的错误bro-required:String[]found:no arguments原因:实际参数列表和形式参数列表在长度上不同。我可以知道(String inputIN:values){inputIN=values[2];}String inputIN变量、FOREACH循环、FOREACH值将存储在inputIN中,但我刚刚得到索引[2],感谢您的解释!这让我对访问变量有了一个清晰的理解。当然。如果这是你想要的,请接受答案。