gpt4 book ai didi

java - 为什么使用匿名类会得到 ClassNotFoundException?

转载 作者:行者123 更新时间:2023-11-29 03:27:04 25 4
gpt4 key购买 nike

我正在使用 Tomcat 7 并且正在学习 JSP。我正在尝试在具有特定扩展名的目录中构建文件列表。我找到了 this tutorial ,我有以下代码:

package winning;

import java.io.File;
import java.io.FileFilter;
import java.util.List;
import java.util.ArrayList;

public class Winning {
public List<String> getNames(String directory, String extension){
final String ext = extension;
File f = null;
File[] names;
List<String> results = new ArrayList<String>();

f = new File(directory);

FileFilter filter = new FileFilter() {
@Override
public boolean accept(File pathname){
return true;
}
};

names = f.listFiles(filter);

for(File file : names){
results.add(file.getName());
}

return results;
}
}

Tomcat 提出的异常是 NoClasDefFoundError,但它报告在 FileFilter filter = new FileFilter... 行抛出 ClassNotFoundException。

如果我去掉那个 block ,我的代码工作得很好,所以我有:

...
f = new File(directory);
// used to be code here
names = f.listFiles(/*no more filter*/);
...

在我看来,它看起来基本上与示例具有相同的代码,但它不起作用。本教程真的已经过时了吗,还是有办法在这里使用匿名类?

最佳答案

当您编译包含匿名类的类时,会生成多个.class 文件。例如,您可以将 Winning.class 作为顶级类,将 Winning$1.class 作为第一个匿名内部类。

如果您只将 Winning.class 放在 /WEB-INF/classes 中,那么当代码尝试加载匿名类。

关于java - 为什么使用匿名类会得到 ClassNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com