当前位置:  编程技术>java/j2ee

多个java泛型示例分享

    来源: 互联网  发布时间:2014-11-05

    本文导语:  1.泛型类 1.1普通泛型 代码如下:package test.lujianing;/** * 泛型类 * @param  */class Test{    private T obj;    public void setValue(T obj){        this.obj =obj;    }    public T getValue(){        System.out.println(obj.getClass().getName());     ...

1.泛型类

1.1普通泛型

代码如下:

package test.lujianing;
/**
 * 泛型类
 * @param
 */
class Test{
    private T obj;
    public void setValue(T obj){
        this.obj =obj;
    }
    public T getValue(){
        System.out.println(obj.getClass().getName());
        return obj;
    }
}
/**
 * 测试泛型类
 */
public class TestOne {
    public static void main(String[] args) {
        //测试Integer泛型
        Test t1 = new Test();
        t1.setValue(5);
        Integer i = t1.getValue();
        System.out.println(i);
        //测试Double泛型
        Test t2 = new Test();
        t2.setValue(5.55D);
        Double d = t2.getValue();
        System.out.println(d);
        //测试String泛型
        Test t3 = new Test();
        t3.setValue("hello world");
        String str =t3.getValue();
        System.out.println(str);
    }
}

输出结果:

代码如下:

java.lang.Integer
5
java.lang.Double
5.55
java.lang.String
hello world

1.2 K/V泛型

代码如下:

package test.lujianing;
import java.util.HashMap;
import java.util.Map;

/**
 * Created by Administrator on 14-3-30.
 */
class TestKV{
    private Map map=new HashMap();
    public void put(K k, V v) {
        map.put(k,v);
    }
    public V get(K k) {
        return map.get(k);
    }
}
public class TestFour{
    public static void main(String[] args) {
        TestKV t = new TestKV();
        t.put("name","jianing");
        System.out.println(t.get("name"));

        TestKV t2 = new TestKV();
        t2.put("age",24);
        System.out.println(t2.get("age"));
    }
}

输出结果:

代码如下:

jianing
24

2.泛型接口

代码如下:

package test.lujianing;
/**
 * 泛型接口
 * @param
 */
public interface TestImpl {
    public void setValue(T t);
    public T getValue();
}

输出结果:

代码如下:

1
hello word

3.泛型方法

代码如下:

package test.lujianing;

/**
 * 泛型方法类
 */
class TestMethod{
    /**
     * 泛型方法
     */
    public T getValue(Object s,Class clazz) {
        System.out.println(clazz.getName());
        T t =null;
        if(clazz.getName().equals("java.lang.Integer")){
            Double d = Double.parseDouble(s.toString());
            int i =d.intValue();
            t=(T)new Integer(i);
        }
        if(clazz.getName().equals("java.lang.Double")){
            t=(T)new Double(s.toString());
        }
        return t;
    }
}

/**
 * 泛型方法测试类
 */
public class TestThree {
    public static void main(String[] args) {
        TestMethod t = new TestMethod();
        int i =t.getValue("30.0011",Integer.class);
        System.out.println(i);
        double d  =t.getValue("40.0022",Double.class);
        System.out.println(d);
    }
}

输出结果:

代码如下:

java.lang.Integer
30
java.lang.Double
40.0022

4.限制泛型

在上面的例子中,没有限制class Test类型持有者T的范围,默认限定类型相当于Object。比如我们要限制T为数字接口类型。只需要这么做:class Test,这样类中的泛型T只能是Number接口的实现类,传入非Number接口编译会出错。

5.通配泛型

代码如下:

package test.lujianing;
import java.util.HashMap;
import java.util.Map;
/**
 * 通配泛型
 */
public class TestFive {
    public static void main(String[] args) {
        Map

    
 
 
 
本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Uploadify 'uploadify.php'存在多个输入验证漏洞
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • linux下grep命令实现查找多个关键字(与关系和或关系)
  • 一个物理服器一个公网IP,多个虚拟机,多个域名
  • 多jdk环境下安装多个tomcat冲突解决配置方法
  • 一个进程中的多个线程不会被调度到一台机器中的多个cup并行执行吗?
  • Apache + tomact 配多个域名 对 多个目录。
  • vim管理多个文件
  • 一个LINUX的驱动程序中,能不能注册多个中断?
  • 300分!查错,解决多个生产者和多个消费者问题 高手进!分不够想法子再加!
  • 如何使一个按钮响应多个事件?过来侃侃@!!!!
  • linux系统支持多个网卡同时工作吗?
  • linux字符界面怎么同时运行多个程序?
  • apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
  • 请问如何实现多个并行的定时器?
  • 请教POSIX问题:一个进程中,可以有多个互斥锁麽?
  • 请问如何在一个文件系统修改源码管理并使用多个卷(存储设备)
  • 用tar命令如何解压多个文件
  • linux下如何做象windows下的OnTimer一样,多个定时器用一个回调函数!!!!!!!




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号