java泛型

1.什么是泛型
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

泛型:泛型类      泛型接口     泛型方法

作用:提高程序健壮性,简化代码
泛型的默认值是Object

jdk 要1.5以上

2.泛型定义

/**

*泛型类

*首先定义一个person的实体类 Person<A,B,C>其中A代表的就是一个泛型,调用时可以自定义数据类型

*/

package com.temp;
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;
 }
}
/**
*调用泛型类
*/
 
   //泛型的属性  属性的数据类型 由调用方来决定当前属性数据类型
   //integer 是int数据类型的封装类
   //Character 是char的类型的封装类
   //必定只能是类而不是基础数据类型的关键字
          Person<String, Integer, Character> p=new Person<>();
          p.setPname("mz");
          p.setPage(10);
          p.setPsex('男');
 
/**
*定义泛型方法
*/
package com.temp;
public class PresonMethod<M> {
 
  public M getValue(M elenment) {
   if(elenment!=null) {
    return elenment;
   }
   return elenment;
  }
}
/**
*调用泛型方法
*/

   PresonMethod<Integer> pm=new PresonMethod<>();
   pm.getValue(20);
  
/**
*定义泛型接口
*/
package com.temp;
import java.util.List;
/**
 * 泛型的结果实现可以在实现类中定义好 也可以在调用的地方定义
 * 接口实现接口 实现类实现类
 * 基础接口 自定义接口来扩展实现类的方法
 * @author dell
 *
 * @param <M>
 */
public interface IBaseFace<M> {
 /**
  * 增加的公共方法
  * @param element
  * @return
  */
  public int addObject(M element);
/**
 * 编辑 
 * @param element
 * @return
 */
  public int editObject(M element);
/**
 * 删除
 * @param element
 * @return
 */
  public int removeObject(M element);
/**
 * 查询单个对象的方法 
 * @param element
 * @return
 */
  public M queryObject(M element);
/**
 * 查询多个对象的方法
 * @param element
 * @return
 */
  public List<M> queryObjects(M element);
 /**
  * 查询并且分页
  * @param element
  * @return
  */
 public List<M> queryObjectPage(M element); 
}
 
 
/**
*定义基础接口
*/
package com.temp;
/**
 * 可以在当前类的接口确定它的数据类型
 * @author dell
 *
 */
public interface IpersonFace extends IBaseFace<Person<String , Integer, Character>>{
 public boolean queryUserName(String uanem);
}
 
 
/**
*调用泛型接口
*/
package com.temp;
import java.util.List;
public class Personimpl implements IpersonFace{
 @Override
 public int addObject(Person<String, Integer, Character> element) {
  // TODO Auto-generated method stub
  return 0;
 }
 @Override
 public int editObject(Person<String, Integer, Character> element) {
  // TODO Auto-generated method stub
  return 0;
 }
 @Override
 public int removeObject(Person<String, Integer, Character> element) {
  // TODO Auto-generated method stub
  return 0;
 }
 @Override
 public Person<String, Integer, Character> queryObject(Person<String, Integer, Character> element) {
  // TODO Auto-generated method stub
  return null;
 }
 @Override
 public List<Person<String, Integer, Character>> queryObjects(Person<String, Integer, Character> element) {
  // TODO Auto-generated method stub
  return null;
 }
 @Override
 public List<Person<String, Integer, Character>> queryObjectPage(Person<String, Integer, Character> element) {
  // TODO Auto-generated method stub
  return null;
 }
 @Override
 public boolean queryUserName(String uanem) {
  // TODO Auto-generated method stub
  return false;
 }
}

 

posted @ 2019-05-21 11:32  chenjiahao  阅读(132)  评论(0编辑  收藏  举报