zoukankan      html  css  js  c++  java
  • 泛型解析

                                                                                                泛型

      
    1、泛型类    

    public class Pig<A,B,C> {
    
        private A pname;
        private B page;
        private C psex;
        public A getPname() {
            return pname;
        }
        public void setPname(A pname) {
            this.pname = pname;
        }
        public B getPage() {
            return page;
        }
        public void setPage(B page) {
            this.page = page;
        }
        public C getPsex() {
            return psex;
        }
        public void setPsex(C psex) {
            this.psex = psex;
        }
        @Override
        public String toString() {
            return "Pig [pname=" + pname + ", page=" + page + ", psex=" + psex + "]";
        }
        
        
        
    }

    2、泛型接口  

    /**
     * 泛型的接口的实现   可以在实现类中定义好   也可以在调用的地方定义好。
     * 
     * 接口实现接口    实现类    实现   类
     * 
     * 基础接口    自定义接口   来扩张实现类的方法
     * @author Admin
     *
     * @param <E>
     */
    public interface IPig<E> {
    
        
        
        //CRUD
        
        /**
         * 增加公共的方法
         * @param elenment
         * @return
         */
        public int addObj(E elenment);
        
        
        /**
         * 编辑的方法
         * @param elenment
         * @return
         */
        public int updateObj(E elenment);
        
        
        /**
         * 删除的方法
         * @param elenment
         * @return
         */
        public int deleteObj(E elenment);
        
        
        
        /**
         * 查询单个对象的方法
         * @param elenment
         * @return
         */
        public E getObj(E elenment);
        
        
        
        /**
         * 查询多个对象的方法
         * @param elenment
         * @return
         */
        public List<E> getAllObj(E elenment);
        
        
        
        /**
         * 分页的方法
         * @param elenment
         * @return
         */
        public List<E> queryObjPage(E elenment);

    2.1 接口继承接口

    public class PigImpl implements IPigP{
    
        @Override
        public int addObj(Pig<String, Integer, Character> elenment) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public int updateObj(Pig<String, Integer, Character> elenment) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public int deleteObj(Pig<String, Integer, Character> elenment) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public Pig<String, Integer, Character> getObj(Pig<String, Integer, Character> elenment) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public List<Pig<String, Integer, Character>> getAllObj(Pig<String, Integer, Character> elenment) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public List<Pig<String, Integer, Character>> queryObjPage(Pig<String, Integer, Character> elenment) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public boolean getName(String name) {
            // TODO Auto-generated method stub
            return false;
        }
    
        
    }

     

    3、泛型方法   

    //泛型方法
        public E getValue(E elenment) {
            if(elenment !=null) {
                return elenment;
            }
            return null; 
        }

    4、 泛型属性

    //泛型的属性
            Pig<String, Integer, Character> p=new Pig();
            
            p.setPname("zs");
            p.setPage(8);
            p.setPsex('');
            
            System.out.println(p.toString());

      泛型的属性  属性的数据类型  由调用方  来决定当前属性的数据类型
      
      Integer是int数据类型的封装类
      Character是char的数据类型的封装类
      
      泛型的数据类型必定只能是类  而不是基础数据类型的   关键字
      
      
      方便扩展   例如(公用类、方便调用时数据类型可改变)
      
      

  • 相关阅读:
    浅谈桶排思想及[USACO08DEC]Patting Heads 题解
    【知识总结】CSS中样式覆盖优先顺序
    【知识总结】Activiti工作流学习入门
    mac下安装nginx问题解决
    spring项目中dubbo相关的配置文件出现红叉的问题
    mybatis对java自定义注解的使用——入门篇
    自学spring过程中碰到的问题list,一个一个解决
    mac下常用软件整理
    小米面试题目(测试开发岗位——不是测试,是测试工具和平台的开发岗位)
    Knockoutjs:Component and Custom Elements(翻译文章)
  • 原文地址:https://www.cnblogs.com/wshemin/p/10898435.html
Copyright © 2011-2022 走看看