Я новичок в java, поэтому любая помощь приветствуется и ценится. Как я могу создать тот же экземпляр класса с уже сохраненной переменной / данными, которые были установлены? Таким образом, я могу вызвать геттер для получения значений. Я пытаюсь получить данные, которые были установлены из основной функции, а затем воссоздать тот же экземпляр, чтобы я мог использовать данные в другом классе.
Где я пытаюсь сделать копию экземпляра
package com.finalproject;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.awt.event.*;
import java.awt.Color;
import javax.swing.ImageIcon;
public class GUIP1
{
public static void gameBoardP1() {
ClassLoader classLoader = BoatsP1.class.getClassLoader();
try
{
Class cls = classLoader.loadClass("com.finalproject.BoatsP1");
System.out.println("cls.getName() = "+ cls.getName());
}
catch (ClassNotFoundException ex)
{
System.out.println(ex.toString());
}
JFrame frame = new JFrame("Battleship");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1000,1000);
frame.setVisible(true);
frame.setTitle("Battleship Player 1");
System.out.println(BoatsP1.getLocation1());
JPanel panel = new JPanel(new GridLayout(10,10,10,10));
for(int i=1; i<=100; i++)
{
JButton btn = new JButton("" +i);
btn.setPreferredSize(new Dimension(40,40));
{
btn.setIcon(new ImageIcon("C:\\Users\\User\\Desktop\\v2\\CSCI24000_spring2020_A9-
master\\Ship.jpg"));
}
panel.add(btn);
Класс, из которого мне нужно скопировать экземпляр:
package com.finalproject;
public class BoatsP1
{
// instance variables
private String type;
private boolean alive;
private String location1;
private String location2;
private String location3;
private String location4;
private String location5;
private String location6;
public BoatsP1(String type)//, boolean alive)
{
this.type = type;
}
public String getType()
{
return type;
}
public void setAlive(boolean var)
{
var = alive;
}
public String getLocation1()
{
return location1;
}
public void setLocation1(String loc1)
{
location1 = loc1;
}
public String getLocation2()
{
return location2;
}
public void setLocation2(String loc2)
{
location2 = loc2;
}
public String getLocation3()
{
return location3;
}
public void setLocation3(String loc3)
{
location3 = loc3;
}
public String getLocation4()
{
return location4;
}
public void setLocation4(String loc4)
{
location4 = loc4;
}
public String getLocation5()
{
return location5;
}
public void setLocation5(String loc5)
{
location5 = loc5;
}
public String getLocation6()
{
return location6;
}
public void setLocation6(String loc6)
{
location6 = loc6;
}
public void setHealth(boolean Health)
{
alive = Health;
}
}
Это где я беру ввод от пользователя и использование сеттеров для отправки данных обратно в класс:
System.out.println("Player 1");
System.out.println("Player 1 has chosen one Battleship, please enter the value of
two tiles that are vertical or horizontal of each other");
System.out.println("Enter first value of your size 2 boat");
Scanner x = new Scanner(System.in);
String tinyloc1 = x.nextLine();
System.out.println("Enter 2nd and final value of your size 2 boat");
Scanner y = new Scanner(System.in);
String tinyloc2 = y.nextLine();
Спасибо!