新问题:在java中传递对象?
我是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)
那我怎么才能让它工作呢?它似乎传递了变量,但在后面没有传递任何内容。工作
EclipseIDE没有太多帮助“链接本地重命名的所有引用(不会更改 在其他文件中引用)“在文件中重命名”是唯一的选项。它不起任何作用
# 1 楼答案
谢谢你,杰克
我声明了一个公共静态字符串,但随后在readFile()中声明了一个StringTokenizer。因此,在调用ProcessLineToken()时,它查看的是空字符串变量,而不是readFile()中声明的StringTokenizer
我误解了StringTokenizer的用法。这是一种类型,不是扩展
# 2 楼答案
您正试图在testread的第243行的字符串上调用
nextToken()
。JAVA如果您使用的是IDE,它应该会告诉您问题所在# 3 楼答案
看起来
lineToken
是String
而不是StringTokenizer
。可能您已经声明了String lineToken
作为类的属性,并计划使用它,但在readFile
方法中,您分配给lineToken
anew StringTokenizer()
,但您的定义是局部的,并且与您正在执行的定义相冲突您应该尝试从中删除
StringTokenizer
就这么做吧