[英]copying array values from one class to another
我陷入了以下問題,
我有兩個類,第一個是readFromFile,第二個是newClass
readFromFile .java-
newClass .java
請幫忙
import java.util.Scanner;
import java.io.*;
public class readFromFile
{
static String[] dArray = new String [30];
public static void main (String[] args) throws IOException
{
String part;
Scanner fileScan, partScan;
int i = 0;
int x = 0;
fileScan = new Scanner (new File("C:\\stuff.txt"));
// Read and process each line of the file
while (fileScan.hasNext())
{
part = fileScan.nextLine();
partScan = new Scanner (part);
partScan.useDelimiter(":");
while ( partScan.hasNext()){
dArray[i] = partScan.next();
i++;
}
}
for (x = 0;x<i;x++)
{ System.out.println(dArray[x]);
}
}
public String[] getArray()
{
return dArray;
}}
newClass.java
public class newClass {
readFromFile results = new readFromFile();// creating object from class readFromFile
public void copyArray() {
String[] dArray = results.getArray(); // Trying to return the values of String [] dArray from rr classs
//Method getArray in rr class is
// public String[] getArray()
// { return dArray; }
String[] arrayCopy = new String[dArray.length];
System.arraycopy(dArray, 0, arrayCopy, 0, dArray.length);
for (int i = 0; i < arrayCopy.length; i++)
System.out.println(arrayCopy[i]);
}
public static void main(String[] args) {
newClass.copyArray();
}
}
結果生成在readFromFile.main()中,但是您希望在readFromFile()中調用它。 您需要為readFromFile創建一個構造函數,並在您的main方法中調用它。
問題在於兩個類都有一個main方法。 僅您要運行的類應具有main方法,其他類僅需要構造函數。 假設您要運行一個未顯示的類,將這樣編寫。
public class ThirdClass{
public static void main(String[] args) {
readFromFile reader = new ReadFromFile();
newClass copy = new newClass();
reader.readFromFile();
String[] strings = reader.getArray();
copy.copyArray(strings)
}
為此,您需要將所有代碼放在“ readFromFile”方法中的readFromFile主體中。 並且您需要newClass中的方法,該方法接受字符串數組作為參數。 或接受字符串數組的構造函數。
確保它們都不具有主要方法,否則將不起作用。
dArray
變量之前刪除static關鍵字 public static void main(String[] args) throws IOException
更改為第一個類中的public readFromFile() throws IOException
。 保持其中的代碼相同。 newClass.copyArray();
在您的第二個類中(new newClass()).copyArray();
readFromFile results = new readFromFile();
進入public void copyArray()
方法。 public void copyArray()
在你的第二類public void copyArray() throws IOException
(new newClass()).copyArray();
像try { (new newClass()).copyArray(); } catch (IOException e) { e.printStackTrace(); }
try { (new newClass()).copyArray(); } catch (IOException e) { e.printStackTrace(); }
上面的代碼可以使您的工作正常運行,但是一個友好的注釋是可以嘗試代碼(一旦工作),因為這是一個很好的示例,可以了解如何使用static
關鍵字,如何處理或引發異常以及如何使用IO。 ;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.