我在一个类中有一个字符串,我想在另一个类中使用,但我无法编译它
我下面的代码应该从另一个 java 类中提取 NewDestination,但我得到错误变量 NewDestination 可能尚未初始化,当我尝试运行时,如何初始化它?
@Named("Filter")
public class Filter{
//public String NewDestination;
private static final String FILE_TEXT_EXT = ".pdf";
public static final String NewDestination;
public static void main(String args[]) {
new Filter().listFile(NewDestination, FILE_TEXT_EXT);
}
public void listFile(String folder, String ext) {
GenericExtFilter filter = new GenericExtFilter(ext);
File dir = new File(folder);
if(dir.isDirectory()==false){
System.out.println("Directory does not exists : " + NewDestination);
return;
}
// list out all the file name and filter by the extension
String[] list = dir.list(filter);
if (list.length == 0) {
System.out.println("no files end with : " + ext);
return;
}
for (String file : list) {
String temp = new StringBuffer(NewDestination).append(File.separator)
.append(file).toString();
System.out.println("file : " + temp);
}
}
// inner class, generic extension filter
public class GenericExtFilter implements FilenameFilter {
private String ext;
public GenericExtFilter(String ext) {
this.ext = ext;
}
public boolean accept(File dir, String name) {
return (name.endsWith(ext));
}
}
}
public static final String NewDestination;
static final
变量表示必须在类加载期间设置的应用程序范围的常量。
只需直接初始化即可
public static final String NewDestination = "some";
或者,不要让它成为常量。
public static String NewDestination;
这完全取决于具体的功能要求,而这个问题根本不清楚。整个代码看起来很奇怪,因此也很难根据到目前为止提供的代码做出有根据的猜测。
进一步应该注意的是,这一切都与JSF无关。它只是基本的Java。你甚至无法编译类,所以这完全超出了 JSF。花一些时间学习基本的Java。本章将介绍常量。JSF有一个相当陡峭的学习曲线。如果你已经不了解基本的Java SE,更不用说Servlet API,那么JSF学习之旅至少需要两倍的时间,而且不会很有趣。