जावा कॉलिंग सरणी किसी अन्य वर्ग - जावा, सरणी, कक्षा से

मैं एक स्टोर करने की कोशिश कर रहा हूँ arrayList सरणी से बनाई गई एक पाठ फ़ाइल के लिए वस्तुओं का ipvalue[] जो किसी अन्य वर्ग में तत्काल है। मेरी समस्या यह है कि जब भी मैं सरणी को लोड करने का प्रयास करता हूं Mainframe कक्षा में Arraystorage कक्षा, यह पूरे सरणी को शून्य के रूप में प्रदर्शित करता हैआउटपुट। मुझे लगता है कि समस्या यह है कि सरणी डेटा मेनफ्रेम विधि के भीतर उत्पन्न होता है, और जब मैं किसी अन्य वर्ग से सरणी को कॉल करता हूं तो यह सरणी को प्रारंभ में ले जाता है। तो मेरा सवाल यह है कि जब मैं इसे प्रारंभ किया जाता हूं तो मैं मूल्य को असाइन किए जाने के बाद सरणी तक कैसे पहुंच सकता हूं।

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

उत्तर:

उत्तर № 1 के लिए 1

संक्षेप में, आप कॉल नहीं कर रहे हैं Mainframe() जो डेटा के साथ आपकी सरणी भरता है। आपको इसे करना चाहिए main उपयोग करने की आवश्यकता से पहले विधि ipvalue सरणी। तो, बस इस विधि को कॉल करें 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

लंबे समय तक, कृपया कम से कम पढ़ें ओरेकल जावा ट्यूटोरियल सम्मेलन, कोड संरचना और कई अन्य नामकरण के लिए जावा मूलभूत के लिए


उत्तर № 2 के लिए 1

एक स्थिर ब्लॉक प्रारंभकर्ता बनाएँ:

public class Mainframe extends javax.swing.JFrame {

static int ipcounter = 0;
public static String[] ipvalue = new String [50];

static {
File file = new File("ipcounter.txt");
FileReader in = new FileReader("ipcounter.txt");
BufferedReader br = new BufferedReader(in);

// Fill your ipvalue

in.close();
}

// The rest of your class definition
public MainFrame() {

}

उत्तर № 3 के लिए 1

आप लोग शायद सही हैं लेकिन मुझे एक और समाधान मिला मेनफ्रेम क्लास में मैं सरणीकरण की मुख्य विधि को कॉल करता हूं Arraystorage.main (शून्य);
जब मैं सरणी को मान आवंटित करता हूं और यह काम करता है!


संबंधित सवाल
सबसे लोकप्रिय