新手求教

疯子霆 2018-11-19 06:33:06
package com.lzw;
import static java.lang.System.out;
import java.util.Random;
class Test{
int i=0;
}
public class FinalData {
static Random rand =new Random();
private final int VALUE_1=9;
private static final int VALUE_2=10;
private final Test test=new Test();
private final Test test2=new Test();
private final int[]a={1,2,3,4,5,6};
private final int i4=rand.nextInt(20);
private static final int i5=rand.nextInt(20);
public String toString(){
return i4+""+i5+"";
}
public static void main(String args[]){
FinalData data=new FinalData();
data.test=new Test();
data.VALUE_2++;
data.test2=new Test();
for(int i=0;i<data.a.length;i++)
{
a[i]=9;
}
out.println(data);
out.println("data2");
out.println(new FinalData());
out.println(data);
}
}
Exception in thread "main" java.lang.Error: 无法解析的编译问题:
不能对非静态字段 a 进行静态引用

at com.lzw.FinalData.main(FinalData.java:26)
-----------------------------------------------------------------
问题是,我在private final int[]a={1,2,3,4,5,6};加入关键字是static 后 private final static int[]a={1,2,3,4,5,6};
系统出现 Exception in thread "main" java.lang.Error: 无法解析的编译问题:
不能对终态字段 FinalData.test 赋值
不能对终态字段 FinalData.VALUE_2 赋值
不能对终态字段 FinalData.test2 赋值

at com.lzw.FinalData.main(FinalData.java:21)
我不知道该怎么办了!~ 请大神指教
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯子霆 2018-12-24
  • 打赏
  • 举报
回复
谢谢大家。。
  • 打赏
  • 举报
回复
final就是最后的意思,即被final修饰的值就是最终值,不能再修改了
冲上云霄 、 2018-11-19
  • 打赏
  • 举报
回复
被final修饰的变量会变成常量
月幻真实 2018-11-19
  • 打赏
  • 举报
回复
被final修饰过的变量不能再次复制,把VALUE_2,test2,test这几个变量上面的final去掉就行了

23,405

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧