java泛型方法返回泛型结果

public class Test {

    static HashMap<String, String> sMap = new HashMap<String, String>();

    public static void main(String[] args) {

        sMap.put("1", "23");
        sMap.put("2", "ad");
        sMap.put("3", "1.0");
        sMap.put("4", "false");
        Integer i = getUserInfoByKey("1", Integer.class, 1);
        String s = getUserInfoByKey("2", String.class, "null");
        Float f = getUserInfoByKey("3", Float.class, -0.1f);
        Boolean b = getUserInfoByKey("4", Boolean.class, true);

    }

    protected static <T> T getUserInfoByKey(String key, Class<T> clazz, T deffault) {
        T ret = null;
        String v = sMap.get(key);
        if (deffault instanceof Integer) {
            ret = (clazz.cast(Integer.parseInt(v)));
        } else if (deffault instanceof String) {
            ret = clazz.cast(v);
        } else if (deffault instanceof Double) {
            ret = clazz.cast(Double.parseDouble(v));
        } else if (deffault instanceof Float) {
            ret = clazz.cast(Float.parseFloat(v));
        } else if (deffault instanceof Long) {
            ret = clazz.cast(Long.parseLong(v));
        } else if (deffault instanceof Boolean) {
            ret = clazz.cast(Boolean.parseBoolean(v));
        }
        if (null != ret) {
            return ret;
        }
        return deffault;
    }
}

原文地址:https://www.cnblogs.com/wangbin2188/p/10209787.html

时间: 2024-08-04 02:09:47

java泛型方法返回泛型结果的相关文章

java 泛型详解(普通泛型、 通配符、 泛型接口,泛型数组,泛型方法,泛型嵌套)

JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型  其实Java的泛型就是创建一个用类型作为参数的类.就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1.str2的值是可变的.而泛型也是一样的,这样写class Java_Generics<K,V>,这里边的K和V就象方法中的参数str1和st

Java泛型的其他应用——泛型接口、泛型方法、泛型数组以及泛型的嵌套设置

学习目标 掌握泛型接口的使用 掌握泛型方法的定义的及使用 掌握泛型数组的使用 掌握泛型的嵌套设置 之前所有的操作都是在类中直接使用泛型操作的,那么,对于Java来说,也可以直接在接口中定义及使用泛型. 定义泛型接口 在JDK1.5之后,不仅仅可以声明泛型类,也可以声明泛型接口,声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上<T>,如下格式所示: [访问权限]  interface 接口名称<泛型标识>{} interface Info<T>{ // 在接口上

Java 中的泛型详解-Java编程思想

Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的对象的类型 class Holder1 { private Circle a; public Holder1(Circle a) { this.a = a; } Circle get() { return a; } } 上面的类的可重用性不怎么样,无法持有其他类型的任何对象,下面通过持有Object

java中的泛型(转)

什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样. 可以在集合框架(Collection framework)中看到泛型的动机.例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象. 因为 Map.get(

Java中的泛型 (上) - 基本概念和原理

本节我们主要来介绍泛型的基本概念和原理 后续章节我们会介绍各种容器类,容器类可以说是日常程序开发中天天用到的,没有容器类,难以想象能开发什么真正有用的程序.而容器类是基于泛型的,不理解泛型,我们就难以深刻理解容器类.那,泛型到底是什么呢? 什么是泛型? 一个简单泛型类 我们通过一个简单的例子来说明泛型类的基本概念.实现原理和好处. 基本概念 我们直接来看代码: public class Pair<T> { T first; T second; public Pair(T first, T se

java集合框架--泛型

1.泛型概述 泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行.也被称为参数化类型,可以把类型当做参数一样传递过来,在传递过来之前并不明确,但是在使用的时候就明确了. 泛型是JDK5以后出现的新特性. 2.泛型出现的原因1 package com; import java.util.ArrayList; import java.util.Iterator; public class GenericDemo { public static void main(

Java 泛型方法

Java 泛型方法 @author ixenos 泛型方法可以定义在普通类中,也可以定义在泛型类中 类型变量放在修饰符(如public static)后面,返回类型的前面 定义在泛型类中时,禁止使用带有类型变量的静态方法如 public static <T> T getMiddle(T...a) {...} 因为类型擦除,泛型类只有一个模板,也就只有一种静态域和静态方法,无法满足泛型的要求,所以设计者直接不给你编译 泛型方法的调用 调用泛型方法时,在方法名前的尖括号中放入具体的类型 Strin

Java基础巩固----泛型

注:参考书籍:Java语言程序设计.本篇文章为读书笔记,供大家参考学习使用   1.使用泛型的主要优点是能够在编译时而不是在运行时检查出错误,提高了代码的安全性和可读性,同时也提高了代码的复用性. 1.1如何理解泛型的使用提高了代码的安全性? 答:例如这样一段代码: ArrayList<Date> arrayList = new ArrayList<Date>(); arrayList.add(new Date()); arrayList.add("data")

Java Reflection(九):泛型

转载自并发编程网 – ifeve.com 内容索引运用泛型反射的经验法则泛型方法返回类型泛型方法参数类型泛型变量类型 我常常在一些文章以及论坛中读到说Java泛型信息在编译期被擦除(erased)所以你无法在运行期获得有关泛型的信息.其实这种说法并不完全正确的,在一些情况下是可以在运行期获取到泛型的信息.这些情况其实覆盖了一些我们需要泛型信息的需求.在本节中我们会演示一下这些情况. 运用泛型反射的经验法则 下面是两个典型的使用泛型的场景:1.声明一个需要被参数化(parameterizable)