Newb问题:在java中传递对象?
我是新来的java。我正在做以下操作:Newb问题:在java中传递对象?
从文件读取,然后将数据放入一个变量。
我已经在类下声明了checkToken和lineToken作为公共字符串。
public static void readFile(String fromFile) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fromFile));
String line = null;
while ((line=reader.readLine()) != null) {
if (line.length() >= 2) {
StringTokenizer lineToken = new StringTokenizer (line);
checkToken = lineToken.nextToken();
processlinetoken()
......
但这里是我遇到问题的地方。
public static void processlinetoken()
checkToken=lineToken.nextToken();
}
它失败。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method nextToken() is undefined for the type String
at testread.getEngineLoad(testread.java:243)
at testread.readFile(testread.java:149)
at testread.main(testread.java:119)
那么我该如何得到这个工作?它似乎通过了变量,但没有任何后。作品。 “
Eclipse IDE没有太大的帮助”链接所有引用为本地重命名(不会更改 其他文件中的引用)“在文件中重命名是唯一的选项。它什么都不做。
看起来好像是lineToken
是String
而不是StringTokenizer
。可能你宣布String lineToken
作为你班级的一个属性,你计划使用它,但在readFile
方法中,你分配给lineToken
a new StringTokenizer()
但你的定义是本地的,并且会影响你正在做的。
您应该通过删除StringTokenizer
从
StringTokenizer lineToken = new StringTokenizer (line);
尝试只是做
lineToken = new StringTokenizer(line);
谢谢。这做到了。 我在声明公共字符串。而不是公共StringTokenizer。我不知道有什么区别。我认为StringTokenizer是String的扩展。 \t public static StringTokenizer lineToken; \t public static String checkToken; – 2010-06-17 01:58:08
你试图调用nextToken()
上一个字符串上testread.java的243线。如果您使用IDE,它应该会显示您的问题。
它说“\t方法nextToken()未定义类型字符串” 它没有在readFile方法中说这个,但是当我去processlinetoken()它不通过。这是我的问题。为什么它给我这个信息? – 2010-06-17 01:34:45
它说:“链接本地重命名的所有引用(不会更改 其他文件中的引用)”,那么它使我可以选择重命名。 但它不起作用。 – 2010-06-17 01:35:35
谢谢杰克。
我声明了一个公共静态String,但是在readFile()中声明了一个StringTokenizer。因此,在调用ProcessLineToken()时,它正在查看空String变量,而不是在readFile()中声明的StringTokenizer。
我误解了StringTokenizer的使用。这是一种类型,而不是扩展。
你能发布更多的代码吗?看起来像processlinetoken()方法调用的'lineToken'不是'StringTokenizer',而是'String'。但很难看到。 – 2010-06-17 01:20:21
分裂你的代码片段和发布片断,因为你已经做了很混乱。如果你编辑你的问题,以更好地展示这两种方法,那就更好了。 – 2010-06-17 01:20:30
我重组后使其更加明显。 – 2010-06-17 01:36:34