我正在爲Bukkit構建一個插件,並使用多個不同的類。 主類將來自不同配置文件的信息加載到主類中的公共變量中。當一個人在遊戲中運行命令時,主類將命令的處理髮送到不同的類,這裏稱爲playerCommands
,該類使用主類MineJobs
進行初始化。所以基本上是handler = new playerCommands(this)
。當playerCommands
初始化時,它就會從MineJobs
的公共變量,像這樣:保存已在類別外部修改的變量
public class playerCommands implements CommandExecutor{
private MineJobs Main;
private Conf Config;
private Lang Lang;
private Map<String, Player> Players;
private Map<String, Job> Jobs;
private Map<Location, SignC> Signs;
public playerCommands(MineJobs main) {
Main = main;
Config = main.Config;
Lang = main.Lang;
Players = main.Players;
Jobs = main.Jobs;
Signs = main.Signs;
}
我的問題是:當我修改playerCommands
私有變量之一,將是修改的公共變量在MineJobs
,這樣我可以調用保存功能,不需要傳回變量?或者我需要定義不同的變量?
如果您調用'Players.put(「Jordan」,新玩家(「michael jordan」));'那麼您的'main's玩家也會「知道」這個改變,因爲他們指的是同一張地圖。這是你的問題嗎? – kiruwka
是的,謝謝。 – AegisHexad