Java变量类型识别的3种方式
内容导览
- 反射方式,成员变量的类型判断
 - isInstance用法
 - 利用泛型识别类型
 
测试类:
package com.cxyapi.oo; import java.util.Date; import com.cxyapi.generics.TypeToolsGenerics; /** 类型识别工具测试类
* @author cxy @ www.cxyapi.com
*/
public class TypeToolsTest2
{
private static int ii=0;
private static Date d=new Date(); public static void main(String[] args) throws Exception
{
//补充一:获得成员变量的类型
System.out.println(TypeToolsTest2.class.getDeclaredField("ii").getType());
System.out.println(TypeToolsTest2.class.getDeclaredField("d").getType());
System.out.println("----------------------"); //补充二:isInstance可判断出包装类型,从而得知基本类型
System.out.println(Integer.class.isInstance(ii));
System.out.println(Date.class.isInstance(d));
System.out.println("----------------------"); //补充三:泛型方式判断类型
System.out.println(TypeToolsGenerics.getType(ii));
System.out.println(TypeToolsGenerics.getType(2.2));
System.out.println(TypeToolsGenerics.getType(true));
System.out.println(TypeToolsGenerics.getType('a'));
System.out.println(TypeToolsGenerics.getType(d));
}
}
泛型方式类型识别工具:
package com.cxyapi.generics; import java.util.HashMap;
import java.util.Map; /** 类型识别工具 泛型
* @author cxy @ www.cxyapi.com
*/
public class TypeToolsGenerics
{
private static final Map<String,String> typeMap=new HashMap<String,String>();
static
{
typeMap.put("java.lang.Byte", "byte");
typeMap.put("java.lang.Short", "short");
typeMap.put("java.lang.Integer", "int");
typeMap.put("java.lang.Long", "long");
typeMap.put("java.lang.Double", "double");
typeMap.put("java.lang.Float", "float");
typeMap.put("java.lang.Character", "char");
typeMap.put("java.lang.Boolean", "boolean");
}
public final static <T> String getType(T t)
{
if(t==null){return null;}
String typeInfo=t.getClass().getName();
return typeMap.containsKey(typeInfo)?typeMap.get(typeInfo):typeInfo;
}
}
转载自:http://blog.csdn.net/liweishi123/article/details/52880542
Java变量类型识别的3种方式的更多相关文章
- JS 中对变量类型判断的几种方式
		
文章整理搬运,出处不详,如有侵犯,请联系~ 数据类型判断和数据类型转换代码工具 在 JS 中,有 5 种基本数据类型和 1 种复杂数据类型,基本数据类型有:Undefined, Null, Boo ...
 - Java中类型判断的几种方式
		
1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...
 - java动态获取WebService的两种方式(复杂参数类型)
		
java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...
 - Java——变量类型
		
Java变量类型: 在Java中,所有的变量在使用前必须声明.格式: type identifier [ = value ][, identifier [ =value]-.]; type为Java数 ...
 - Java-Runoob:Java 变量类型
		
ylbtech-Java-Runoob:Java 变量类型 1.返回顶部 1. Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifie ...
 - (七)Java 变量类型
		
Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ...
 - JAVA - 启动线程有哪几种方式
		
JAVA - 启动线程有哪几种方式 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行 ...
 - Java中HashMap遍历的两种方式
		
Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...
 - JAVA中集合输出的四种方式
		
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...
 
随机推荐
- vue.js鼠标经过和离开事件  mouseover   mouseout
			
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code @mouseover="showEwm(1)" @mouseout ...
 - 【vue】vue +element 搭建项目,el-input 常用的验证
			
1.el-input 常用布局 <el-input class="filter-item dialog-search" size="small" @key ...
 - DAO层基础设计原理
			
在实际的开发中有一种项目的程序组织架构方案叫做MVC模式,按照程序 的功能将他们分成三个层,如下图 Modle层(模型层).View层(显示层).Controller层(控制层). Modle层:可以 ...
 - MyOD 代码实现
			
MyOD的代码实现 一.题目要求: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.设计思路 OD命令详解: 因此,该题目所要实现的功能为以 ...
 - markdown的使用语法的补充
			
markdown的使用语法的补充 markdown的语法在网络上有很多,例如简书的教程这个是参考简书上的教程 但是有几个语法需要记住. 添加图片,如果要添加图片,他的语法格式是首先一个感叹号!然后[] ...
 - OPPO Developers Conference(2018.12.26)
			
时间:2018.12.26地点:北京国家会议中心
 - A2D Framework - 看如何精简业务逻辑 - 缓存子系统
			
A2D中一项功能是关于Cache的,能够将判断.获取.删除cache的代码缩减到最少量,如下是Order业务逻辑的demo示范: interface IOrder { [Cachable()] str ...
 - ab 压力测试
			
两个 Time per request ab有一个-c n参数,就是第一行的Concurrency Level,可以让ab创建n个并发连接进行测试. 第一个Time per request 代表每个链 ...
 - RuntimeError: Model class apps.users.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
			
报错代码: File "/home/bsodgm/Desktop/Django_projection/mall/apps/users/views.py", line 9, in & ...
 - Vue(二)基础
			
01-vue的起步 1.引包 a) 直接下载,并用<script>标签引入 b) CDN方式引入: <script src="https://cdn.bootcss.com ...