gpt4 book ai didi

Java 从另一个类调用数组

转载 作者:行者123 更新时间:2023-11-29 04:31:25 25 4
gpt4 key购买 nike

我正在尝试将对象的 arrayList 存储到从数组 ipvalue[] 创建的文本文件中,该数组在另一个类中实例化。我的问题是,每当我尝试将数组从 Mainframe 类加载到 Arraystorage 类时,它会将整个数组显示为空输出。我想问题是数组数据是在 Mainframe 方法中生成的,当我从另一个类调用数组时,它只是在初始化时获取数组。所以我的问题是如何在为数组赋值后而不是在初始化时访问数组。

new String[50] 
mainframe class:



public class Mainframe extends javax.swing.JFrame {
static int ipcounter = 0;
public static String[] ipvalue = new String [50];


/**
* String a[]Creates new form Mainframe
*/
public Mainframe() {
try {
initComponents();
this.setLocation(500,250);
Nettest.main(null);
Display.setText(Nettest.indicator);
Arraystorage.main(null);
Path path = Paths.get("ipcounter.txt");

File file = new File("ipcounter.txt");


FileReader in = new FileReader("ipcounter.txt");
BufferedReader br = new BufferedReader(in);

readline = Integer.parseInt(br.readLine());
in.close();
ipcounter = readline;

if(ip.tracker.Nettest.status == true){
ipvalue[ipcounter] = Readipfromurl.inputLine;
// crosscheck();

Writer writer = null;
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("ipcounter.txt"), "utf-8"));
writer.write(String.valueOf(ipcounter+1));

writer.close();
System.out.println(ipvalue[ipcounter]);
ipcounter++;


arraystorage class:


public class Arraystorage implements Serializable{
public static void main(String[] args) throws
ClassNotFoundException {

ArrayList<String> list = new ArrayList<String>();
for (int i=0; i<50;i++){
list.add(Mainframe.ipvalue[i]);}
try {
PrintWriter out = new PrintWriter(new BufferedWriter(new
FileWriter("data.txt")));
for( int x = 0; x < list.size(); x++)
{
out.println(list.get(x));
}

out.close();


} catch (IOException ex) {

Logger.getLogger(Arraystorage.class.getName()).log(Level.SEVERE,
null, ex);
}

最佳答案

简而言之,您没有调用用数据填充数组的 Mainframe()。在需要使用 ipvalue 数组之前,您应该在 main 方法中执行此操作。因此,只需在 Mainframe 实例上调用此方法即可:

public static void main(String[] args) throws  ClassNotFoundException { 

ArrayList<String> list = new ArrayList<String>();
Mainframe frame = new Mainframe();
frame.Mainframe();
for (int i=0; i<50;i++){
list.add(Mainframe.ipvalue[i]);
}
... // do the rest

长话短说,请至少阅读Oracle Java tutorial用于命名约定、代码结构等的 Java 基础知识

关于Java 从另一个类调用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43666516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com