【发布时间】:2014-03-29 21:09:47
【问题描述】:
我正在为 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", new Player("michael jordan"));,那么您的main的玩家也会“知道”这一变化,因为他们指的是同一张地图。这是你的问题吗?