java泛型

1.泛型方法

复制代码
/*
 * <T>表示本方法持有一个不确定类型T,表示本方法是一个泛型方法
 * T 返回值类型为T类型的对象
 * Class<T> clazz:只有通过反射才能拿到泛型T的对象,因为方法运行时才知道泛型的真正类型
 * throws IllegalAccessException, InstantiationException:newInstance()方法抛出了异常
 * */

public class Demo {
    public <T> T method(Class<T> clazz) throws IllegalAccessException, InstantiationException {
        T t = clazz.newInstance();
        return t;
    }
}
复制代码

 2.返回一个泛型类型

复制代码
public <T> T evaluate(Class<T> clazz, String expression) throws IllegalAccessException, InstantiationException {
        return clazz.newInstance();
    }

    public <T> T executeDemoOne(Supplier<T> request){
        return request.get();
    }

    public <T> T executeDemo(Supplier<T> request) throws RejectedExecutionException {
        try {
            ExecutorService executor = Executors.newCachedThreadPool();
            Future<T> future = executor.submit(() -> request.get());
            T obj = future.get(1000l, TimeUnit.MILLISECONDS);
            return obj;
        } catch (ExecutionException | InterruptedException | TimeoutException e) {
            e.printStackTrace();
        }
        return null;
    }
复制代码

 

posted @   N神3  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多