| 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 ; |  | } | 
 |