2015-04-02 55 views
0

我是Java編程的新手,我只是有一個簡單的問題,但我做不到,因爲我不知道如何在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 

     } 

回答

1

不知道你確切需要什麼。無論如何試試這個:

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); 
} 

btw遵循命名約定。

編輯:下面的代碼應編譯成功,在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); 
    } 
} 
+0

已經試過這個,沒有工作 – tuturyokgaming 2015-04-02 02:52:17

+0

那麼你到底想要什麼? – tony200910041 2015-04-02 02:53:10

+0

我得到的錯誤,需要:字符串[] 找到:沒有參數 原因:實際和正式參數列表長度不同 – tuturyokgaming 2015-04-02 02:54:21

0

您不能訪問擁有它們的方法之外的方法變量。如果變量直接屬於某個類,則可以通過其他方法訪問這些變量。

+0

感謝您的解釋!它讓我對訪問變量有了清晰的認識。 – tuturyokgaming 2015-04-02 03:07:01

+0

當然可以。如果這是您正在尋找的內容,請接受答案。 – 2015-04-02 03:25:48

0

你不能調用那樣的變量。你可以做的一種方法是全局聲明變量值(除了主函數或任何其他函數之外,並且位於包和導入之下的頂部)。這樣所有其他功能將能夠使用變量值。另一種方法是從主發送變量值中調用checkStatus函數。下面

例中的主要功能:

checkStatus(values); 

呼叫傳遞的變量值的函數的checkStatus。 JAVA是一種嚴格按值傳遞語言。會發生什麼情況是函數checkStatus被調用並且變量值的副本在其中被創建並具有相同的值並被傳遞給該函數。

功能:

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

如果您打算修改該功能的checkStatus變量值,並希望它在主要的修改完全,那麼你可以返回的值返回到主像這樣。

String[] receive; 
receive = checkStatus(values); 
在功能

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

希望這有助於。如果您需要進一步澄清或幫助,請發表評論。

+0

我只需要從方法ReadIN中獲取變量'values'的值,並且我將在方法checkStatus中創建一個函數以將其與某些內容進行比較。 – tuturyokgaming 2015-04-02 03:05:43

+0

然後您不需要使用return方法。只需使用我在答案上發佈的方法。只需發送該值並將其用於比較。因爲無需首先將值從ReadIN發送到checkStatus,就無法從ReadIN訪問變量值。或者就像我說過的,你總是可以將值作爲一個全局變量,以便所有其他函數都可以訪問它。 – Sangkaran 2015-04-02 03:11:33

+0

同樣的錯誤bro - required:String [] found:沒有參數reason:實際和形式參數列表長度不同 – tuturyokgaming 2015-04-02 03:16:44

相關問題