2011-07-17 4 views
1
Promise<List<WrapSpec>> wrapSpecPromise = new Job() { 
       @Override 
       public List<WrapSpec> doJobWithResult() throws Exception { 
        return PkgLoad.findDistinctWrapSpecBetweenDates(pkgLine, startDate, endDate);    
       } 
      }.now(); 

pkgLine, startDate, endDate 값을이 메서드에 전달할 수 있습니까? 어떤 도움을 주셔서 감사합니다.내부 클래스 메서드에 값을 전달 하시겠습니까?

EDIT :이 권고 사항에 반대합니까? 아니. 감사.

+0

final 선언하는 경우 예, 다른 방법으로 아래의 링크 [최종 사용하지 않고 매개 변수 전달] [1] 처럼도있다 [1] : http://stackoverflow.com/a/12206542/1168603 –

답변

5

가 호출 블록

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(); 
+0

감사합니다. 나는 그 책을 읽는 것을 기억합니다. 내 게시물을 수정했습니다. 이게 뭔가 맞는거야? –

+0

@Drew. 그렇습니다. –

2

작업 인터페이스/클래스를 변경하지 않으려면 doJobWithResult 메소드에 no를 입력하십시오. 그러나, 이들은 둘러 N는 메소드 또는 클래스에서 정의 된 변수가 될 수 있으며 이런 식으로 사용됩니다. 지역 변수 인 경우 익명의 내부 클래스에서 사용하기 위해 최종적으로 사용해야합니다 (알렉산더의 답변 참조).

관련 문제