我正在为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
中的公共变量,以便我可以在那里调用保存函数而不需要传递变量背部?或者我需要以不同方式定义变量吗?
答案 0 :(得分:0)
没有。你必须自己做。使用getter和setter代替并在那里进行镜像。例如:
public void setConfig(Conf value) {
Main.Config = value;
}
public Conf getConfig() {
return Main.Config;
}