一维java数组的问题
我的一个java类中出现了一个空指针异常。 我一直在看这个东西,现在我可以用另一双眼睛了。 我有两个类文件: 文件分析器:一维java数组的问题,java,arrays,Java,Arrays,我的一个java类中出现了一个空指针异常。 我一直在看这个东西,现在我可以用另一双眼睛了。 我有两个类文件: 文件分析器: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package photouploader; import java.nio.*; import java.io.*; import java.util.*; /**
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package photouploader;
import java.nio.*;
import java.io.*;
import java.util.*;
/**
*
* @author 10339
*/
public class fileParser {
/*var Decleration*/
private File dir;
private File [] Files;
public String [] Filernames;
/*Accessor Methods*/
public File getDir(){
return dir;
}
public void SetDir(File directory){
dir=directory;
}
public File[] getFiles(){
return Files;
}
public void setFiles(File [] matches){
Files=matches.clone();
}
public String [] getFilenames(){
return Filernames;
}
public void setFilenames(){
for(int i=0;i<Files.length;i++){
System.out.println(Files[i].toString());
System.out.println(Files[i].toString().substring(Files[i].toString().lastIndexOf("\\")+1));
Filernames[i]=Files[i].toString().substring(Files[i].toString().lastIndexOf("\\")+1);
}
}
}
我试图将数据放置在过滤器名称的位置0处,但它仍然异常。
我错过什么了吗?
使用前是否需要声明数组的大小?
谢谢
Scorliss您必须为数组元素分配内存:
Filernames = new String[Files.length];
编辑:
那么仅仅声明是不够的
不。简而言之,当你声明变量时,你只是说“这个变量将指向一个数组”。在那一刻,它根本不包含任何数组。要使用该变量,必须向该变量分配一个数组。您可以阅读更多有关数组基础知识的内容。字符串[]Filernames的声明不是这样的:字符串[]Filernames=newstring[5];
(or=newstring[some length];)您还应该遵循Java代码惯例,例如只有类名以大写字母开头,变量名以小写字母开头。THX就是这样。那么仅仅声明是不够的?谢谢你这么说。我会潜得更深一点。
Filernames = new String[Files.length];