本文是《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; } }
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)
相关推荐
3)在path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意变量值之间用“;”隔开) 4、“开始”-->“运行”-->输入“javac”-->"Enter",如果能正常打印用法说明配置成功! 补充环境...
### AZT_Java编码规范详解 #### 一、概述 《AZT_Java编码规范》是一份详尽的文档,旨在指导使用Java语言进行软件开发的过程中遵循一系列标准和最佳实践。该规范覆盖了代码排版、注释撰写、变量命名、编码习惯以及...
2. **环境配置**:学习Java首先需要安装Java Development Kit (JDK),配置好环境变量,确保系统能够识别`javac`编译器和`java`解释器。 3. **基本语法**:包括数据类型(整型、浮点型、字符型、布尔型)、变量声明...
根据提供的文件内容,虽然由于OCR扫描的原因,存在一些文字识别错误和漏识别的问题,但我们可以从中提取出一些关于Java的关键词和概念。这些关键词和概念很可能与Java的基础知识相关,而这些内容是Java面试中经常被...
- 这个扩展名不仅告诉开发者这是一个Java文件,也是Java编译器识别并处理这类文件的基础。 - 其他选项如`.class`用于编译后的字节码文件;`.txt`通常用于文本文件;`.ext`并不是一个常见的文件扩展名。 ### 2. ...
包括`JAVA_HOME`指向JDK的安装目录,`PATH`包含`%JAVA_HOME%\bin`,这样命令行就能识别`javac`(Java编译器)和`java`(Java虚拟机)等命令。 4. **验证安装**:通过在命令行输入`java -version`,如果返回JDK的...
- **自动类型提升**:当两种不同数据类型的值进行运算时,Java会自动将较小的数据类型提升到较大的数据类型。 - **强制类型转换**:通过显式地将一个类型转换为另一个类型,如:`(int) 3.14` 将浮点数转换为整数。 ...
### Java软件开发实战:制作JAR包的补充说明 #### 1. 了解JAR包 JAR(Java Archive)是一种归档格式,用于收集多个Java类文件和相关的元数据及资源文件(如图像和声音),并将其压缩为单个文件。这种方式便于分发和...
5. 数据类型:Java 是一种静态类型语言,每个变量和表达式都有一个确定的数据类型。数据类型包括基本类型(如 int, boolean, char 等)和引用类型(如数组和类对象)。Java 语言中 int 类型的取值范围为 -2^31 至 2^...
7. **类型注解**:Java 8允许在类型使用处(比如变量声明、参数、返回类型等)使用注解,增强了类型系统的表达力。 在实际使用Java 8 1.8.08u时,开发者首先需要将其解压缩到一个指定的目录,然后配置环境变量`JAVA...
安装IDE是为了提高开发效率,例如文中提到的可能是Eclipse,安装后需要配置Java SDK路径,使IDE能够识别和使用Java环境。 3. **"Hello World!"程序**:这是一个经典的编程入门示例,用于验证Java环境是否配置成功。...
3. **正则表达式**:在实现词法分析器时,通常会用到正则表达式来匹配各种类型的词法单元。例如,使用正则表达式可以很容易地匹配整数、浮点数、字符串以及注释。 4. **词法分析器的实现**:在Java中,可以使用现成...
#### 三、变量类型 - **局部变量**:在方法内部定义的变量,作用域仅限于该方法,且使用前必须初始化。 - **成员变量**:定义在类的数据域中,包括类变量和实例变量。 - **类变量**(静态变量):用`static`修饰,...
- **配置环境变量**:设置必要的环境变量以便系统能够正确识别 Java。 - **执行安装**:运行安装程序并按照提示进行操作。 - **验证安装**:安装完成后,可以通过运行简单的 Java 应用来验证安装是否成功。 3. *...
根据给定文件信息,以下是关于Java语法的详细知识点: Java编程语言的基本组成部分包括源代码文件(.java文件)、编译器(javac...由于文件内容可能存在扫描识别错误,以上信息部分依据标准Java语法进行了调整和补充。
在深入分析东北大学2017年研究生高级Java语言试题之前,首先需要指出,由于提供的文档部分包含了扫描文本中的错误识别,本回答将对内容进行修正并补充完整知识点。 一、名词解释 1. J2SE:Java 2 Platform Standard...
3. **基础语法**:学习Java的基础语法,包括数据类型(整型、浮点型、字符型和布尔型)、变量声明、运算符、流程控制(if-else、switch、for、while循环)以及方法定义。 4. **类与对象**:Java是一种面向对象的...
3. **注解(Annotation)**:注解是Java提供的一种元数据,提供了在编译时或运行时向编译器和JVM传递信息的方式。例如,`@Override`注解表示方法是重写父类方法,`@Deprecated`表示方法或类已过时。学习注解可以参考...
- **作用**:标识符用于唯一识别变量、类、方法或数组元素。 - **特点**: - 可以由字母、数字、下划线(_)和美元符号($)组成。 - 必须以字母、下划线或美元符号开头。 - 大小写敏感,例如,“Variable”和...