Java变量类型识别
方法:
1、反射方式,成员变量的类型判断
2、isInstance用法
3、利用泛型识别类型
一、新建测试类
import java.util.Date; import com.cxyapi.generics.TypeToolsGenerics; /** 类型识别工具测试类
* */
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));
}
}
二、泛型方式类型识别工具
import java.util.HashMap;
import java.util.Map; /** 类型识别工具 泛型
*
*/
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;
}
}
注意:instanceof是用于对象与类的判断
Java变量类型识别的更多相关文章
- Java-Runoob:Java 变量类型
ylbtech-Java-Runoob:Java 变量类型 1.返回顶部 1. Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifie ...
- (七)Java 变量类型
Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ...
- Java——变量类型
Java变量类型: 在Java中,所有的变量在使用前必须声明.格式: type identifier [ = value ][, identifier [ =value]-.]; type为Java数 ...
- Java变量类型识别的3种方式
内容导览 反射方式,成员变量的类型判断 isInstance用法 利用泛型识别类型 测试类: package com.cxyapi.oo; import java.util.Date; import ...
- 一、JAVA变量类型:①类变量与实例变量的异同点
在JAVA中,变量使用前必须声明,格式如下: int a; //单个变量声明 int b, c, d; //多个变量一起声明 int e = 1, f = 2, g = 3; //声明时同时赋值(初始 ...
- A02-java学习-classpath配置-标识符-java变量类型
学习 1, classpath的配置和使用 2, java的标识符命名规则和命名规范 3, 字符编码 4, java的变量类型 5, 程序的入口main方法解释
- Java ——变量类型
变量声明 int a, b, c; // 声明三个int型整数:a. b.c int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始 ...
- java变量类型和常量类型
变量类型 局部变量 实例变量 类变量 public class 变量类型 { //属性:变量 //必须先定义再使用,并初始化 //布尔型:默认值为false //3. 类变量(静态变量) static ...
- Java 变量类型
局部变量 成员变量 类变量 Java局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局 ...
- 一、JAVA变量类型:②局部变量
局部变量声明在方法.构造方法或者语句块中: public class Test{ public void pupAge(){ int age = 0; //定义age为方法pupAge中的局部变量,并 ...
随机推荐
- MQ 如何保证数据一致性?
前言 上个月,我们有个电商系统出了个灵异事件:用户支付成功了,但订单状态死活不改成"已发货". 折腾了半天才定位到问题:订单服务的MQ消息,像人间蒸发一样消失了. 这个Bug让我明 ...
- 【SpringMVC】处理模型数据
处理模型数据 Spring MVC 提供了以下几种途径输出模型数据: ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据 Map 及 Mo ...
- Ubuntu14.04系统设置菜单选项缺失
最近折腾Ubuntu14.04,突然有一天发现系统设置里少了好多菜单选项,莫名的zuo ji,解决办法如下,留爪. 问题图示 解决办法 #首先打开终端输入,终端快捷键[Ctrl + Alt + T] ...
- nodejs集群
nodejs集群 单个 Node.js 实例运行在单个线程中. 为了充分利用多核系统,有时需要启用一组 Node.js 进程去处理负载任务. 集群中的Master 现在让我们详细了解Master的职责 ...
- B站,首战告捷!
大家好,我叫良许,本来是一名写代码的博主,万万没想到,我居然我会放下脸皮在B站当UP主,还全程露脸不戴口罩! 到目前为止,已经拥有 1.1 万粉丝啦~ 我是从去年12月中旬开始正式进驻B站,但是,因为 ...
- 面试官:如果某个业务量突然提升100倍QPS你会怎么做?
"假设你负责的系统,某个业务线的QPS突然暴增100倍,你会怎么应对?" --这是上周朋友去面试,被问到一道题,他答了"加机器扩容",结果面试官眉头一皱:&qu ...
- 我理解的伽马校正(Gamma Correction
写在前面 我相信几乎所有做图像处理方面的人都听过伽马校正(Gamma Correction)这一个名词,但真正明白它是什么.为什么要有它.以及怎么用它的人其实不多.我也不例外.最初我查过一些资料,但很 ...
- Clean DDD 技术沙龙 2025 杭州站
整洁领域驱动设计(Clean DDD)第一次线下活动来了,这是: 一个软件设计的全新视角 一次复杂度掌控感的深度体验 一场软件工程效率的探索之旅 活动时间:2025年4月13日星期日 下午 13:00 ...
- Semaphore.acquire()方法的底层原理
一.acquire() 的工作流程 当调用 acquire() 方法时,实际调用的是 AQS 的 acquireSharedInterruptibly(1) 方法.以下是其详细工作流程: // acq ...
- 根据返回值,判断是否执行下一步的方法(Run Keyword And Return Status指令的使用)
场景分析: 上图"通用模版测试"内容 满足,如果当前页面存在这条数据,即结束执行本条用例,自动执行下一条.如果没有,则调用新建模版关键字,执行新建模版. 脚本如下 1配置运费模版 ...