无法访问 SearchTerm 匿名内的字符串 class
Can't access string inside SearchTerm anonymous class
我正在尝试使用 java 邮件 api(javax.mail) 中的主题文本搜索邮件,但我无法访问匿名 class 中的主题字符串像这样,
Message[] messages = null;
final String searchText = mailParam.getSearchText();
SearchTerm serachCondition = new SearchTerm() {
private static final long serialVersionUID = 1L;
@Override
public boolean match(Message message) {
try {
if (message.getSubject().contains(searchText)) {
return true;
}
} catch (MessagingException ex) {
ex.printStackTrace();
logger.error(ex.getMessage());
}
return false;
}
};
messages = folder.search(serachCondition);
在这里我无法访问重写方法匹配中的最终字符串 searchText。谢谢
https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
匿名 class 无法访问其封闭范围内未声明为 final 或有效 final 的局部变量。与嵌套 class 一样,匿名 class 中的类型(例如变量)声明会隐藏封闭范围内具有相同名称的任何其他声明。
final String searchText = mailParam.getSearchText();
您可以将 searchText 作为 instance 变量而不是 local 变量 上面一行
我正在尝试使用 java 邮件 api(javax.mail) 中的主题文本搜索邮件,但我无法访问匿名 class 中的主题字符串像这样,
Message[] messages = null;
final String searchText = mailParam.getSearchText();
SearchTerm serachCondition = new SearchTerm() {
private static final long serialVersionUID = 1L;
@Override
public boolean match(Message message) {
try {
if (message.getSubject().contains(searchText)) {
return true;
}
} catch (MessagingException ex) {
ex.printStackTrace();
logger.error(ex.getMessage());
}
return false;
}
};
messages = folder.search(serachCondition);
在这里我无法访问重写方法匹配中的最终字符串 searchText。谢谢
https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
匿名 class 无法访问其封闭范围内未声明为 final 或有效 final 的局部变量。与嵌套 class 一样,匿名 class 中的类型(例如变量)声明会隐藏封闭范围内具有相同名称的任何其他声明。
final String searchText = mailParam.getSearchText();
您可以将 searchText 作为 instance 变量而不是 local 变量 上面一行