Java에 익숙하지 않고이 문제가 발생했습니다. 객체 상태를 파일에 저장하는 방법을 배우고 배열을 생성자에 전달하는 데 어려움이 있습니다. 문제는 생성자가있는 기본 클래스라고 생각하지만 확실하지 않습니다. 여기 Java가 배열을 생성자에 전달하는 중
내 영웅 클래스입니다 :import java.io.Serializable;
public class Hero implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private int power;
private String type;
private String[] wepons;
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String[] getWepons() {
return wepons;
}
public void setWepons(String[] wepons) {
this.wepons = wepons;
}
public Hero(int powerH, String typeH, String[] weponsH) {
this.power = powerH;
this.type = typeH;
this.wepons = weponsH;
}
}
여기에 내가 객체 상태 저장 사용하려고 클래스입니다 :
import java.io.*;
public class SaveGame {
public static void main(String[] args) {
Hero hero1 = new Hero(50, "Elf", new String[] {"bow", "short sword", "powder"});
try{
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("Game.ser"));
os.writeObject(hero1);
os.close();
} catch (IOException ex) {
ex.printStackTrace();
}
ObjectInputStream is;
try {
is = new ObjectInputStream(new FileInputStream("Game.ser"));
Hero p1N = (Hero) is.readObject();
System.out.println(p1N.getPower() + " " + p1N.getType() + " " + p1N.getWepons());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
당신이 말해 내가 뭘 잘못 설명 할 수를 . 영웅 클래스에 세터와 게터가 정말로 필요한가요? 내가 잘못 사용하고 있다는 느낌이 들었습니다.
내 문제는 영웅의 매개 변수를 인쇄하려고했을 때 배열의 문자열 표현 대신 배열의 내용을 얻었습니다. user2336315 덕분에 배열의 내용을 인쇄 할 때 Arrays.toString 메서드를 사용해야한다는 것을 이제 알았습니다.
실제로 어떻게됩니까? 컴파일 오류가 발생합니까? 예외? 뭔가가 당신의 기대와 다르게 행동합니까? – user2357112
관련성이 없지만 wepons가 잘못되었습니다. –
_ "영웅 클래스에 세터와 게터가 실제로 필요한가요? 내가 잘못 사용하고 있다는 느낌이 들었습니다."- getter와 setter가있는 'private'필드는 다음과 같습니다. 좋은 연습. 그리고 당신은 그들을 잘 사용하고있는 것 같습니다. –