泛型

public class Temp {

    public static void main(String[] args) {
        
        
        //
        Mystack ms=new Mystack();
        ms.push("a");
        ms.push("b");
        ms.push("c");
        ms.push("d");
        ms.push("e");
        for (int i = 0; i < 5; i++) {
            System.out.println(ms.prop());
        }
        
        /**
         * 泛型
         * 泛型类 泛型接口 泛型方法 泛型的属性
         * 泛型的属性  属性的数据类型由调用方来决定当前数据类型
         * Integer是int数据类型的封装类
         * Character是char类型的封装类
         * 必定只能是类 而不是基础数据类型的关键字
         * 方便扩展
         */
        Person<String, Integer, Character> p=new Person<>();
        p.setPname("张三");
        p.setPage(18);
        p.setPsex('');
        
        //泛型的方法
        PersonWethod<String> pm=new PersonWethod<>();
        pm.getValue("张三");
        
        //引用类型 可以new
        //装箱 值类型 到引用类型
        int i=10;
        Object object=i;
        System.out.println(object);
        
        //拆箱 应用类型 到值类型
        Object o=10;
        int j=(int)o;
        System.out.println(j);
    }
}
import java.util.ArrayList;
import java.util.LinkedList;

public class Mystack {

//    ArrayList arr=new ArrayList();
//    public void push(Object object) {
//        arr.add(0, "e");
//    }
//
//    public Object prop() {
//        //取第一个元素
//        Object o=arr.get(0);
//        arr.remove(0);
//        return o;
//    }
    
    LinkedList arr=new LinkedList();
    public void push(Object object) {
        arr.addFirst(object);
    }
    public Object prop() {
        Object o=arr.getFirst();
        arr.removeFirst();
        return o;
    }
}
import java.util.List;

public interface IBaseFace<E> {

    /**
     * 增加的公共方法
     * @param elenment
     * @return
     */
    public int addObject(E elenment);
    
    /**
     * 编辑
     * @param elenment
     * @return
     */
    public int editObject(E elenment);
    
    /**
     * 删除
     * @param elenment
     * @return
     */
    public int removeObject(E elenment);
    

    /**
     * 查询单个对象的方法
     * @param elenment
     * @return
     */
    public E queryObject(E elenment);
    

    /**
     * 查询多个对象的方法
     * @param elenment
     * @return
     */
    public List<E> queryObjects(E elenment);
    
    
    /**
     * 查询并分页
     * @param elenment
     * @return
     */
    public List<E> queryObjectPage(E elenment);

    
}
public interface IPersonFace extends IBaseFace<Person<String,Integer,String>>{

    public boolean queryUser(String uname);
}
public class Person<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;
    }
    
}
import java.util.List;

public class PersonImpl implements IPersonFace{

    @Override
    public int addObject(Person<String, Integer, String> elenment) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int editObject(Person<String, Integer, String> elenment) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int removeObject(Person<String, Integer, String> elenment) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Person<String, Integer, String> queryObject(Person<String, Integer, String> elenment) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<Person<String, Integer, String>> queryObjects(Person<String, Integer, String> elenment) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<Person<String, Integer, String>> queryObjectPage(Person<String, Integer, String> elenment) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public boolean queryUser(String uname) {
        // TODO Auto-generated method stub
        return false;
    }

}
public class PersonWethod <E>{


    public E getValue(E elenment) {
        if(elenment!=null) {
            return elenment;
        }
        return null;
    }
}
原文地址:https://www.cnblogs.com/huxiaocong/p/10898841.html