项目-范型

92 阅读1分钟

范型的应用Demo


// 关注点1,父类指定范型
public abstract class AbstractUserListener<T> {

    // 关注点2,本地线程不需要规定死类型
    ThreadLocal<List<T>> userThreadMap = new ThreadLocal<>();
    
    // 关注点3,方法中data不需要规定死类型
    void invoke(T data, AnalysisContext context);
}

// 关注点1,子类规定范型为AppletUser,可能为OpUser、SysUser
public class AppletUserListener extends AbstractUserListener<AppletUser>{
    
      
    @Override 
    // 关注点3,方法中data就是AppletUser
    public void invoke(SysUser data, AnalysisContext context) {

        // 关注点2,本地线程取出来就是AppletUser
        List<SysUser> dataList = dataThreadMap.get();
    }
}