日期:2014-05-20  浏览次数:20737 次

初学JAVA,例题报错,求前辈指点
Java code

import java.io.*; 
 public class Welcome
 {
     public static void main(String args[])throws IOException
     {
         BufferedReader br=new BufferedReader(new FileReader("1.txt"));
         BufferedWriter bw=new BufferedWriter(new FileWriter("2.txt"));
         StreamTokenizer st=new StreamTokenizer(br);
         st.whitespaceChars(0, 32);
         st.eolIsSignificant(true);
         int tokenType;
         while(br.ready())
         {
             tokenType=st.nextToken();
             switch(tokenType)
             {
                 case st.TT_NUMBER://这里报错,说例表达式必须是常量表达式,但不知道应该怎么改
                     bw.write(String.valueOf((long)st.nval));
                     bw.newLine();
                     break;
                 case st.TT_WORD://同上
                     bw.write(st.sval);
                     bw.newLine();
                     break;
             }
         }
         bw.close();
    }
 }



刚接触JAVA.. 看到这种完全面向对象的写法差点两眼一白就倒下了= =||

------解决方案--------------------
因为TT_NUMBER是static变量,所以不要用StreamTokenizer对象来访问。
你改成
StreamTokenizer.TT_NUMBER

StreamTokenizer.TT_WORD
应该就好了。

------解决方案--------------------
StreamTokenizer.TT_NUMBER
TT_NUMBER这个是静态的,直接访问就好了.
st.TT_NUMBER这么些也可以运行,只是个警告.
------解决方案--------------------
静态变量不属于实例类的,访问方式类名加“.”