我的Java代码中有两个错误

时间:2015-04-07 05:42:23

标签: java

private static final String fileAttachment= "D:\hai.txt";

以上行生成错误'invlaid escape sequence'。所以我把它改成了:

private static final String fileAttachment= "D:\\hai.txt";

现在我收到错误'参数fileAttachment'的非法修饰符。

那么如何解决这个错误?

3 个答案:

答案 0 :(得分:1)

private static final String fileAttachment= "D:\\hai.txt";

这可能是因为你的变量在任何函数内?

如果是,则将其更改为:

final String fileAttachment= "D:\\hai.txt";
  

方法内的变量仅存在于堆栈帧上。每次调用方法时,JVM都会创建一个新的堆栈帧,并在方法完成后将其丢弃。

或者更好地在班级级别移动所有常量。请参阅Java Doc Constants

答案 1 :(得分:0)

您必须在任何方法之外进行定义。这就是它给出这个例外的原因。 private修饰符仅允许在类级别。

答案 2 :(得分:0)

如果要在类级别定义变量,那么第二个选项将起作用。这是:

private static final String fileAttachment= "D:\\hai.txt";

但是如果要在方法级别定义相同的变量(局部变量),则必须删除变量的修饰符和访问说明符。 as:

final String fileAttachment= "D:\\hai.txt";

因为局部变量可以有final修饰符而不是其他修饰符。