Promise<List<WrapSpec>> wrapSpecPromise = new Job() {
@Override
public List<WrapSpec> doJobWithResult() throws Exception {
return PkgLoad.findDistinctWrapSpecBetweenDates(pkgLine, startDate, endDate);
}
}.now();
是否可以将值pkgLine,startDate,endDate传递给此方法?谢谢你的帮助。
编辑:这是建议反对的吗?或不。感谢。 for ( final PkgLine pkgLine : pkgLineList ) {
Promise<List<WrapSpec>> distinctWrapPromise = new Job() {
@Override
public List<WrapSpec> doJobWithResult() throws Exception {
return PkgLoad.findDistinctWrapSpecBetweenDates( pkgLine, startDate, endDate );
}
}.now();
promiseList.add( distinctWrapPromise );
}
答案 0 :(得分:5)
是的,如果它们在调用块中声明为final
final PkgLine pkgLine = ...;
final Date startDate = ...;
final Date endDate = ...;
Promise<List<WrapSpec>> wrapSpecPromise =
new Job() {
@Override
public List<WrapSpec> doJobWithResult() throws Exception {
return
PkgLoad.findDistinctWrapSpecBetweenDates(
pkgLine,
startDate,
endDate
);
}
}.now();
答案 1 :(得分:2)
进入doJobWithResult方法,否,除非您要更改Job接口/类。但是,它们可以是在封闭方法或类中定义的变量,并以这种方式使用。如果是局部变量,它们必须是最终用于匿名内部类,如Alexander的答案所示。