Java 从类对象访问静态变量
我目前有一个Class类型的数组,它只保存BuildingComplex类型的子类。它基本上包含了我正在创建的游戏中允许构建的所有不同类Java 从类对象访问静态变量,java,arrays,class,casting,subclass,Java,Arrays,Class,Casting,Subclass,我目前有一个Class类型的数组,它只保存BuildingComplex类型的子类。它基本上包含了我正在创建的游戏中允许构建的所有不同类 private static Class[] AVAILABLE = new Class[]{ LumberCamp.class, Farm.class, Storehouse.class, Port.class, Barracks.class, Edifice.class }; 当我想从这些类中的一个访问静态变量时(由于从BuildingComple
private static Class[] AVAILABLE = new Class[]{
LumberCamp.class, Farm.class, Storehouse.class, Port.class, Barracks.class, Edifice.class
};
当我想从这些类中的一个访问静态变量时(由于从BuildingComplex继承,所有这些类都具有此静态变量),我无法确定如何让可用的[I]访问静态变量,因为我找不到任何将类强制转换为特定类的资源
提前谢谢你。我不确定我是否完全理解你的问题,但你在找这样的东西吗
@SuppressWarnings("unchecked")
private static Class<? extends BuildingComplex>[] AVAILABLE = new Class<? extends BuildingComplex>[]{
LumberCamp.class, Farm.class, Storehouse.class, Port.class, Barracks.class, Edifice.class
};
@SuppressWarnings(“未选中”)
私有静态类静态变量不能通过继承使用。如果BuildingComplex有一个静态变量,那么只需通过BuildingComplex.static\u VAR
访问它即可。我的错!受保护的变量!对于当前使用的类,可用的是静态的!我的主要问题是访问该类,以便将其作为BuildingComplex的子类引用。在阅读了两次任务之后,我仍然不清楚您想要什么。我想我不是唯一一个。尽量简明扼要,你可能会得到更好的答案。我不确定这是否是一个好的设计,但请检查Class.asSubclass
是否符合你的要求。已经尝试过了,但它不起作用。无法创建Classyes的泛型数组,您需要添加SuppressWarnings注释来消除它(由于java数组的限制)。在这种情况下,代码是完全安全的。我通过做类似的事情解决了我的问题。非常感谢。