java中<S extends T>S 中的T 怎么定义呢,IDE提示错误

 AmenTo_AT 发布于 2022-10-26 20:13

以下这个方法,我想调用,然后在第二个参数传入一个实体类,比如User,
然后在方法里面通过反射获取User的属性。

parse2Domain(map,new User());

不知道这样是不是行得通。
但是现在问题是,这个T 编辑器提示错误啊


    public S parse2Domain(Map map,S s ){

        for (Object m : map.keySet()) {


        }

        return s;
    }
2 个回答
  • 在类那里定义的泛型,或者方法入参那里也可以

    2022-10-27 01:41 回答
  • 你这个可以写成:

        public <T, S extends T>S parse2Domain(Map<String,Object> map,S s ){
    
            for (Object m : map.keySet()) {
    
    
            }
    
            return s;
        }

    但问题你函数里没用到T,所以其实没啥意义,一个典型的用法是:

        public <T, S extends T> void copy(List<T> dest, List<S> src) {
        ...

    意味着拷贝的时候源对象应该是目标对象的子类,这样才好拷贝嘛。

    2022-10-27 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有