保存已在类外修改的变量

时间:2014-03-29 21:09:47

标签: java class

我正在为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中的公共变量,以便我可以在那里调用保存函数而不需要传递变量背部?或者我需要以不同方式定义变量吗?

1 个答案:

答案 0 :(得分:0)

没有。你必须自己做。使用getter和setter代替并在那里进行镜像。例如:

public void setConfig(Conf value) {
    Main.Config = value;
}

public Conf getConfig() {
    return Main.Config;
}