1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  | package com.dy.common.util; 
 |    
 |    
 |  @SuppressWarnings("unused") 
 |  public abstract class ThreadJob { 
 |      public void start(Callback callback){ 
 |          new Thread(() -> { 
 |              Exception[] exe = {null} ; 
 |              Object[] obj = {null} ; 
 |              try { 
 |                  obj[0] = execute() ; 
 |              }catch(Exception e){ 
 |                  e.printStackTrace(); 
 |                  exe[0] = e ; 
 |              }finally { 
 |                  if(callback != null){ 
 |                      if(exe[0] != null){ 
 |                          callback.exception(exe[0]); 
 |                      }else{ 
 |                          callback.call(obj[0]); 
 |                      } 
 |                  } 
 |              } 
 |          }).start(); 
 |      } 
 |    
 |      public abstract Object execute() throws Exception ; 
 |  } 
 |  
  |