我有類似靜態值沒有得到分配和返回空值
public class Toys {
public static Toy BAT = Registry.getToy("BAT");
public static Toy DOLL = Registry.getToy("DOLL");
}
其中註冊表會類型玩具的所有對象的軌道。當提供一個鍵時,它將返回有效的Toy實例。
當我這樣做時,Toys.BAT,它給了我空值,但Registry.getToy(「BAT」)返回給我有效的玩具實例。
公共類註冊{
private static final HashMap<String, Toy> _toysMap = new HashMap<String, Toy>();
public static void putToy(String toyCode, Toy toy) {
_toysMap.put(toyCode, Toy) ;
}
public static Toy getToy(String toyCode) {
return _toysMap.get(toyCode);
}
}
有什麼很明顯的,我缺少什麼?
此外,我在同一時間打電話Registry.getToy( 「BAT」)和Toys.getToy( 「BAT」)..
下面是其失敗
進口靜態org.junit的TestRegistry 。斷言。*;
import org.junit.Before; import org.junit.Test;
公共類TestRegistry {
@Before
public void setUp() throws Exception {
System.out.println(Toys.BAT);
Registry.putToy("BAT", new Toy());
Registry.putToy("DOLL", new Toy());
}
@Test
public void test() {
System.out.println(Registry.getToy("BAT"));
System.out.println(Toys.BAT);
assertTrue(Registry.getToy("BAT") == Toys.BAT);
}
}
上面打印
空 - 註冊表犯規包含
玩具@ 80cac9玩具 - 註冊表有玩具現在
null - Toys.BAT仍然爲空值。
這塊繩子我在這裏在我的手中......它有多長時間? :P如果沒有完整的註冊表對象的源代碼,我們可能會動搖一個魔法8球。 – mcfinnigan 2012-04-20 13:48:05
我們需要看看'Registry'以及你如何把東西放進去。 – 2012-04-20 13:48:24
在程序流程中您是否在調用Toys.BAT? – LexyStardust 2012-04-20 13:50:07