zoukankan      html  css  js  c++  java
  • 关于定义泛型接口的使用

    定义了一个DAO<T>接口

    package com.wengde.bookshop1.dao;
    
    import java.util.List;
    
    public interface DAO<T> {
      //插入数据,同时获取插入的ID
      long insert(String sql,Object...args);
      //执行update操作,包括insert delete update
       void update(String sqj,Object...args);
      //返回一个对象
       T query(String sql,Object...agrs);
       //执行多条查询记录,返回一个list
       List<T> queryForlist(String sql,Object...args);
       //查询统计信息
        <V> V getSingleval(String sql,Object ... args); 
       //批量处理
       void batch(String sql,Object[]...args);
    }

    再定义一个实现类(这个类实现DAO类的时候,没有带泛型,其方法就全部是Object类)

    package com.wengde.bookshop1.impl;
    
    import java.util.List;
    
    import com.wengde.bookshop1.dao.DAO;
    
    public class DAOIpml  implements DAO {
    
        @Override
        public long insert(String sql, Object... args) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public void update(String sqj, Object... args) {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public Object query(String sql, Object... agrs) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public List queryForlist(String sql, Object... args) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public Object getSingleval(String sql, Object... args) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void batch(String sql, Object[]... args) {
            // TODO Auto-generated method stub
            
        }
    
    }

    定义一个DAOImpl(该类实现的DAO<T>带了泛型,则其对应的方法涉及到泛型的就是指定泛型T类型)

    package com.wengde.bookshop1.impl;
    
    import java.util.List;
    
    import com.wengde.bookshop1.dao.DAO;
    
    public class DAOIpml  implements DAO<T> {
    
        @Override
        public long insert(String sql, Object... args) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public void update(String sqj, Object... args) {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public T query(String sql, Object... agrs) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public List<T> queryForlist(String sql, Object... args) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public <V> V getSingleval(String sql, Object... args) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void batch(String sql, Object[]... args) {
            // TODO Auto-generated method stub
            
        }
    
    }

    总结,由于之前实现接口的时候,忘记带了泛型,所以导致可能会使一些带泛型的方法会出现错误(除非一直用object类)。

  • 相关阅读:
    安装kali中的一些常用工具和firefox的插件
    kali定制
    熟悉BASH命令
    kali中各目录的作用
    kali中netspeed的安装方法
    kali中常用的ctf工具
    【学生党必看】大学里,你的六个重要选择【转载】
    kali持久加密USB的制作
    elasticsearch _search结果解析
    Springboot整合Elasticsearch报错availableProcessors is already set to [4], rejecting [4]
  • 原文地址:https://www.cnblogs.com/wrkjwl/p/9238623.html
Copyright © 2011-2022 走看看