我想做一些我從未做過的時髦的東西。如何從Java中的構造函數反序列化對象?
那麼什麼,我試圖做的是: 我通過以下操作
Player playerVar = new Player(1234);
玩家構造函數,然後將尋找一個球員called 1234
創建一個對象,如果它存在,它就會反序列化和存儲加載對象'playerVar
', if not it'll just follow through and give a
'空白'播放器對象。
我不確定是否有可能使當前對象成爲同一對象的其他實例,所以我在這裏發帖。
這實際上是我想要做的。
this = deserielizedObject
我知道這都可以通過加載對象,然後手動設置所有必需的變量來完成,但是這是很難理想。我目前我怎麼能與自己的另一個實例「替代」的對象,從自身內部
這是代碼有
player.java
public class Player implements java.io.Serializable
{
Player(String GUID) // when loading a new player
{
Player player = loadPlayer(GUID);
//i want to set this to player
// something like this = player If you know what i mean....
}
Player()//when creating a new player
{
}
private Player loadPlayer(String GUID)
{
File f = new File("data/players/"+GUID+".ser");
if(!f.exists())
{
Player player = new Player();
return player;
}
Player player = null;
try
{
FileInputStream fileIn = new FileInputStream("data/players/"+GUID+".ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
player = (Player) in.readObject();
in.close();
fileIn.close();
}
catch(IOException i)
{
i.printStackTrace();
return null;
}
catch(ClassNotFoundException c)
{
System.out.println("Cant find Player Class!");
c.printStackTrace();
return null;
}
return player;
}
private int guid;
private String name;
private int bankMoney;
.......
...
.
}
您不能分配值'this'在Java ... – BobTheBuilder