Tôi có một giao diện cho các hạng mục lọc:NotSerializableException trên lớp nặc danh
public interface KeyValFilter extends Serializable{
public static final long serialVersionUID = 7069537470113689475L;
public boolean acceptKey(String iKey, Iterable<String> iValues);
public boolean acceptValue(String iKey, String value);
}
và một lớp có chứa một thành viên của loại KeyValFilter.
public class KeyValFilterCollector extends KeyValCollectorSkeleton {
/**
*
*/
private static final long serialVersionUID = -3364382369044221888L;
KeyValFilter filter;
public KeyValFilterCollector(KeyValFilter filter){
this.filter=filter;
}
Khi tôi cố gắng để bắt đầu KeyValFilterCollector với một lớp vô danh thực hiện KeyValFilter:
new KeyValFilterCollector(new KeyValFilter(){
private static final long serialVersionUID = 7069537470113689475L;
public boolean acceptKey(String iKey, Iterable<String> iValues){
for (String value : iValues) {
if (value.startsWith("1:"))
return true;
}
return false;
}
public boolean acceptValue(String iKey, String value){
return value.startsWith("0:");
}
});
tôi nhận được một ngoại lệ: Exception in thread "main" java.io.NotSerializableException Làm thế nào để làm cho lớp vô danh tôi đã viết Serializable?
Tôi đã xác định bộ lọc thành viên là tĩnh và đã giải quyết được sự cố. – Shaharg