提问人:Hack-R 提问时间:3/12/2016 最后编辑:launeHack-R 更新时间:3/12/2016 访问量:1419
编译时错误 - 在import java.io.BufferedReader中找不到符号;
Compile time error - can't find symbol in import java.io.BufferedReader;
问:
将 Java 与 NetBeans IDE 结合使用时,我有一个程序,在我编译它之前,它不会给我任何错误或警告,但随后它会告诉我:
error: cannot find symbol
import java.io.BufferedReader;
symbol: class BufferedReader
location: package java.io
1 error
(底部有完整错误)
举个完整的例子,我将使用从我正在使用的插件 CODAPPS 生成的模板,我所做的只是添加行 .示例中未使用导入,但错误与我的程序相同:import java.io.BufferedReader;
StateMachine.java
/**
* Your application code goes here
*/
package userclasses;
import java.io.BufferedReader;
import generated.StateMachineBase;
import com.codename1.ui.*;
import com.codename1.ui.events.*;
import com.codename1.ui.util.Resources;
/**
*
* @author Your name here
*/
public class StateMachine extends StateMachineBase {
public StateMachine(String resFile) {
super(resFile);
// do not modify, write code in initVars and initialize class members there,
// the constructor might be invoked too late due to race conditions that might occur
}
/**
* this method should be used to initialize variables instead of
* the constructor/class scope to avoid race conditions
*/
protected void initVars(Resources res) {
}
}
错误:
Updating property file: C:\Users\hackr\Documents\NetBeansProjects\CodenameOne Hello World\build\built-jar.properties
Compile is forcing compliance to the supported API's/features for maximum device compatibility. This allows smaller
code size and wider device support
Compiling 3 source files to C:\Users\hackr\Documents\NetBeansProjects\CodenameOne Hello World\build\tmp
C:\Users\hackr\Documents\NetBeansProjects\CodenameOne Hello World\src\userclasses\StateMachine.java:6: error: cannot find symbol
import java.io.BufferedReader;
symbol: class BufferedReader
location: package java.io
1 error
编译程序的命令是,当我在 NetBeans 中单击绿色的“播放”按钮时生成的命令是:
ant -f "C:\\Users\\hackr\\Documents\\NetBeansProjects\\CodenameOne Hello World" -Dnb.internal.action.name=run run
答:
4赞
laune
3/12/2016
#1
在查看了 Codename One 的 CODAPPS 网站上的 CODEAPP Java 文档后,一切都很清楚:您不是针对任何成熟的 Java JDK 进行开发或编译,而是针对一个受限的子集进行开发或编译,该子集通过一些用于移动应用程序的东西进行了增强。
不能使用 .使用链接中的 Javadoc 查看您可以使用的内容。java.io.BufferedReader
如果你认为这是值得的,你可以掠夺JDK源代码 - 如果你还没有下载所有的JDK源代码,grepcode会为你找到它。或者看看它,从中学习,然后推出你自己的 - 你可能不需要该类的所有功能。
评论
0赞
laune
3/12/2016
@Hack-R 感谢您的编辑。我终于找到了合适的标签(代号)。
0赞
Hack-R
3/12/2016
太好了,感谢您为我解决本手册。我应该更好地阅读手册;我从来没有怀疑过可以从 Java 中删除功能!
0赞
Shai Almog
3/13/2016
请注意,默认情况下,Codename One 中的所有流都处于缓冲状态,因此 JDK 中不再需要缓冲功能。IO 的许多帮助程序代码都可以通过 Util 类访问。
评论
ant -f "C:\\Users\\hackr\\Documents\\NetBeansProjects\\CodenameOne Hello World" -Dnb.internal.action.name=run run
java.io.BufferedReader
import java.io.ByteArrayInputStream;