日期:2014-05-20  浏览次数:20912 次

奇怪的变量尚未初始化
public   void   fileunit()
{
File   first_file=new   File(text.getText());
String   file_name;
String   file_direction;
String   left_name;
String   right2_name;
File   dfile;
byte   bueff[];

file_name=first_file.getName();
file_direction=first_file.getParent();
left_name=file_name.substring(0,file_name.length()-2);
//substring(int   beginIndex,   int   endIndex),读取字符自己定义的开始位置到结束位置,即可以读取某字符串某段的内容
String   right_name=file_name.substring(file_name.length()-2);
right2_name=file_name.substring(file_name.length()-1);
//substring(int   beginIndex)自己定义开始位置,结束默认
if(right_name.compareTo( "_0 ")==0)
{
dfile=new   File(file_direction,left_name);
bueff=new   byte[1024];
}

else
{
JOptionPane.showMessageDialog(null, "太小了 ", "太小了 ",2);
}

File   files[];
files=new   File[200];
int   qkl;
for(int   i=0;   i <200;   i++)
{
files[i]=new   File(file_direction,left_name+right2_name+Integer.toString(i));
if(files[i].exists())
{
i++;
}
else   if(files[i].exists())
{
qkl=i;
break;
}
}
try{
RandomAccessFile   filedd=new   RandomAccessFile(dfile, "rw ");
RandomAccessFile   filesrandom[];
for(int   qk=0;   qk <=qkl;   qk++)
{
filesrandom[qk]=new   RandomAccessFile(files[qk], "r ");
for(int   kl=0;   kl <files[qk].length();   kl++)
{
int   a=filesrandom[qk].read(bueff);
... }
编译出现以下问题:
filecute.java:142:   可能尚未初始化变量   dfile
                RandomAccessFile   filedd=new   RandomAccessFile(dfile, "rw ");
                                                                                                          ^
filecute.java:144:   可能尚未初始化变量   qkl
for(int   qk=0;   qk <=qkl;   qk++)
                                    ^
filecute.java:146:   可能尚未初始化变量   filesrandom
                                filesrandom[qk]=new   RandomAccessFile(files[qk], "r ");
                                ^
filecute.java:149:   可能尚未初始化变量   bueff
                                                int   a=filesrandom[qk].read(bueff);


为什么会有这些问题  我定义在一些if或for里面就会说变量没有尚未初始化,难道变量在这些里面有局部性...不是全局的,从来没有遇到啊 感觉奇怪

------解决方案--------------------
如果false就没有执行
{
dfile=new File(file_direction,left_name);
bueff=new byte[1024];
}

了吧
------解决方案--------------------
建议LZ全部在声明的时候进行初始化
------解决方案--------------------