文章目录
- 1.** cannot be resolved
- 2.‘input’ is never closed
- 3.void is an invalid type for the variable
- 4.Cannot make a static reference to the non-static method
- 5.Cannot make a static reference to the non-static field name
- 6.duplicate field name
- 7.Exception in thread "main" java.lang.NullPointerException
- 8.Syntax error on token(s), misplaced construct(s)
- 9.Syntax error, insert "Finally" to complete BlockStatements
- 10.Syntax error, insert "}" to complete ClassBody
- 11.duplicate parameter e
- 12.xxx cannot be resolved to a type
- 13.用IO流输出excel单元格时,左边的单元格被清空
- 14.The field Segment.point1 is not visible
- 15.y2 cannot be resolved to a variable
- 16.Exception in thread "main"java.lang.NullPointerException
- 17. java.lang.ArrayIndexOutOfBoundsException:1
- 18.Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
- 19.java中File的delete()方法删除文件失败的原因
- 20.IO流文件夹“(拒绝访问)”的原因以解决方法
- 21.Syntax error, insert "Finally" to complete BlockStatements
- 22.java写文件时,输出不完整
1.** cannot be resolved
我经常因为打错单词而出现这个情况。
字面意思是 :编译器无法识别"**"这个变量。
如:“application cannot be resolved”的意思就是编译器无法识别"application"这个变量。
解决思路:可以先找找”**“是从哪里来的,是方法的参数,还是成员变量 局部变量 或者Jsp中的页面内置对象。之后看看是否有那块的命名不规范,或者还有错误信息,这个只能是根据实际情况来进行问题分析。
2.‘input’ is never closed
在main方法的末尾加上input.close();即可。
链接:https://blog.csdn.net/linmengmeng_1314/article/details/72420951
3.void is an invalid type for the variable
在一个方法中定义了另一个方法,这在java中是不允许的。
解决方案:把整个方法的代码复制到此处所在的方法之外,在此方法中还可以使用定义的方法。
4.Cannot make a static reference to the non-static method
https://blog.csdn.net/guozuofeng/article/details/84453358
我这次是因为在同一个类的main方法中调用了同类的方法,因为java中 静态方法不可以直接调用非静态方法和成员。
其实可以在main方法中创建一个类,像“类.方法()”这样调用即可。
5.Cannot make a static reference to the non-static field name
https://blog.csdn.net/aeolus1019/article/details/7974430
6.duplicate field name
成员属性(field)
我这次是因为命名了一个全局变量name,和方法中的name重名了
7.Exception in thread “main” java.lang.NullPointerException
只是声明了对象,并没有对对象进行实例化,所以无法调用。
只需要实例化下面调用的对象属性即可,其他未调用的属性可以不进行实例化。
下面的内容是出错的位置,即调用未实例化对象属性的位置。
8.Syntax error on token(s), misplaced construct(s)
有语法错误
9.Syntax error, insert “Finally” to complete BlockStatements
我这次是因为try的内容不完整
需要在try catch块中加入finally,如下:
try{
//code
}catch(Exception e){
//code
}finally{
// add this section
}
10.Syntax error, insert “}” to complete ClassBody
类的后面缺’}’
11.duplicate parameter e
使用了同名的变量e
12.xxx cannot be resolved to a type
https://blog.csdn.net/testcs_dn/article/details/39643119/
我这次是因为调用的类名打错了,改了之后就好了
13.用IO流输出excel单元格时,左边的单元格被清空
因为createRow是创建一行,会把内容清空,使用getRow即可。
14.The field Segment.point1 is not visible
这次是因为类是私有的,不能直接访问
15.y2 cannot be resolved to a variable
这次提前声明了y2就不报错了
16.Exception in thread "main"java.lang.NullPointerException
我这次是因为定义了一个类数组之后,数组中的每个类没有分别实例化
17. java.lang.ArrayIndexOutOfBoundsException:1
https://blog.csdn.net/qq_37486501/article/details/84782201
数组下标越界,发生错误的时候,位置为1
18.Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1
用str.split(" ");将txt文件中的每一行字符串分隔成的字符串数组,但是如果有一行是空行的话,就会出现这样的数组越界,去掉空行后就好了,不知道为什么。
19.java中File的delete()方法删除文件失败的原因
https://www.cnblogs.com/stono/p/6736767.html
20.IO流文件夹“(拒绝访问)”的原因以解决方法
https://blog.csdn.net/isAlberYu/article/details/78732550
不能直接对一个文件夹进行read和write操作
21.Syntax error, insert “Finally” to complete BlockStatements
复制代码的时候,多了一个try
22.java写文件时,输出不完整
转载自:https://blog.csdn.net/exceptional_derek/article/details/9452187
原因:
实际上,FileWriter在写文件时,会把内容存储到一块缓冲区中,当缓冲区满后,才会把缓冲区中的内容写入文件,内容再继续存到缓冲区,如此反复,而flush()方法里面实际是调用了flushBuffer(),会将内存中的内容强制写到文件中,即使内存没满。这就是为什么最后要调用一次fileWriter.close(),close()方法里面同样调用了flushBuffer(),这样就可以了。否则就会最后有少部分的内容缺失。特别是写小文件的时候,会出现文件空白,没有内容。
解决方法:
在后面加上一行
writer.flush();