即使經過了幾年的java工作,我也不知道我是否忘記了自己的基礎知識。爲什麼我的靜態變量在主要方法中不可用?
我有具有靜態塊類
static {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("PATH OF PROPERTIES FILE"));
String properties22 = (String) prop.getProperty("propertyname");
properties22Tokens = new StringTokenizer(properties22, ",");
while(properties22Tokens.hasMoreTokens())
{
System.out.print(":::"+properties22Tokens.nextToken());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我已經宣佈公共靜態聲明該變量如下面
公共靜態的StringTokenizer properties22Tokens;
我試圖在下面的主要方法中打印標記..但沒有標記.. 這是吃令牌嗎?
public static void main(String arg[]) {
System.out.print("in main..");
while(properties22Tokens.hasMoreTokens())
{
System.out.print(":::"+properties22Tokens.nextToken());
}
}
輸出是 - 從化子性質的一些標記+主..
我的預期輸出 - 從主.. +從性能有一定的令牌
可能有人特性+一些標記請修復並解釋修復?
是的,這是虛假的..但爲什麼? – user2954791
謝謝湯姆...但是如果我想在同一個類的同一個變量上用不同的方法迭代幾次,那麼最好的做法是什麼? – user2954791
您需要每次從屬性值創建新的'StringTokenizer'。 –