我不明白为什么这是有效的,请帮助教育我。
Config CFIG = new Config();
Tile selectedTile = CFIG.tileGallery.get(1);
System.out.println("This is the name:" + selectedTile.getName());
Feature selectedFeature = CFIG.featureGallery.get(3);
System.out.println("This is the name:" + selectedFeature.getName()+
" " + selectedFeature.getEffect(0));
我初始化对象CFIG
,它设置了类Config
tileGallery
ArrayList 和featureGallery
ArrayList 的成员变量。当我运行代码时,它可以工作,输出选定的测试值。但是对于这两个声明性语句,Netbeans 都会给出“访问静态字段”的警告
使用“替换为类引用”的提示,它将语句更改为:
Tile selectedTile = Config.tileGallery.get(1);
Feature selectedFeature = Config.featureGallery.get(3);
当我运行它时,它仍然有效!
问题,配置。没有识别从哪个 Config 对象调用数据。现在我只存在一个 Config 对象,但即使我初始化了第二个 Config 对象,它仍然不会显得混乱。
这里发生了什么?
编辑:andih 想知道配置类的代码是什么。我没有添加它,因为它并不多,并且认为您可以轻松地假设它与该问题相关。但是,这里是,以防万一。
public class Config {
public static ArrayList<Tile> tileGallery;
public static ArrayList<Feature> featureGallery;
public Config (){
this.tileGallery = Tile.ReadTileXML();
this.featureGallery = Feature.ReadFeatureXML();
}
}