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