public static void run(Object refer, Runnable atom) {
        if (null != atom) {
            if (log.isTraceEnabled())
                log.tracef("TableName.run: [%s]->[%s]", object, object.get());

            Object old = get();
            set(refer);
            try {
                atom.run();
            }
            catch (Exception e) {
                throw Lang.wrapThrow(e);
            }
            finally {
                set(old);
                if (log.isTraceEnabled())
                    log.tracef("TableName.finally: [%s]->[%s]", object, object.get());
            }
        }
    }
public static void run(Object refer, Runnable atom) {
        if (null != atom) {
            if (log.isTraceEnabled())
                log.tracef("TableName.run: [%s]->[%s]", object, object.get());

            Object old = get();
            set(refer);
            try {
                atom.run();
            }
            catch (Exception e) {
                throw Lang.wrapThrow(e);
            }
            finally {
                set(old);
                if (log.isTraceEnabled())
                    log.tracef("TableName.finally: [%s]->[%s]", object, object.get());
            }
        }
    }
public static void run ( Object refer , Runnable atom ) { if ( null != atom ) { if ( log . isTraceEnabled ( ) ) log . tracef ( "TableName.run: [%s]->[%s]" , object , object . get ( ) ) ; Object old = get ( ) ; set ( refer ) ; try { atom . run ( ) ; } catch ( Exception e ) { throw Lang . wrapThrow ( e ) ; } finally { set ( old ) ; if ( log . isTraceEnabled ( ) ) log . tracef ( "TableName.finally: [%s]->[%s]" , object , object . get ( ) ) ; } } }
代码模板，这个模板保证了，在 atom 中运行的 POJO 的动态表名，都会被参考对象所影响

@param refer
参考对象
@param atom
你的业务逻辑
代码模板，这个模板保证了，在 atom 中运行的 POJO 的动态表名，都会被参考对象所影响