1
我想继承并使用另一个类的静态方法从另一个类设置一个静态变量。java - 是否有可能继承并设置为另一个类的静态变量
这是示例代码:
public class A {
private static HashMap<Integer, String> hmFromIdToDesc = null;
public static void setHm(HashMap<Integer, String> hm) {
if(hmFromIdToDesc == null) DummyContent.hmFromIdToDesc = hm;}
}
其他类,其中i调用静态方法:
public class B{
private HashMap<Integer, String> hm = new HashMap<Integer, String>();
A.setHm(hm);
}
我认为在这段代码有一些极其错误的,但我不得不修改代码和类A只能以静态方式使用,所以我想保持这种用法。
Compilator说在A.setHm(hm)我有一个java.lang.ExceptionInInitializerError。
我想知道是否有方法从其他类中的静态方法设置静态变量。
谢谢你的回答!
编辑:
public class B{
private HashMap<Integer, String> hm = new HashMap<Integer, String>();
void myMethod(){
A.setHm(hm);
}
}
真正的情况是,我尝试,像你说的@Vladimir,使用静态{}(我指的是块),但是不可能里面的方法和使用静态{}我的方法之外是一个问题,因为我必须把许多变量静态,但在我的代码是很难做到这一点(代码公布只是一个例子,以更好地了解我的问题)。
还有其他想法吗?
我编辑了我的问题,同时感谢您的回答。 – soissy
我明白,与静态我必须使用静态的所有变量和方法,但我认为这是成为一个混合,我冒着失去理智。所以我决定消除大部分的静电。真的非常感谢你的帮助。 – soissy