2011-07-17 183 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傳遞給此方法?謝謝你的幫助。將值傳遞給內部類方法?

編輯:這是什麼建議反對?或不。謝謝。

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

聲明final也有另一種方式像在下面鏈路 [傳遞參數,而不使用最終] [1] [1]:http://stackoverflow.com/a/12206542/1168603 – 2013-04-08 09:19:09

回答

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

@德魯。是的,這是有道理的。 –

2

進入doJobWithResult方法,否則,除非要更改Job接口/類。但是,它們可以是封閉方法或類中定義的變量,並以此方式使用。如果是局部變量,他們必須是最終的匿名內部類,如亞歷山大的答案所示。