java判断是否基本类型,基本类型与对应的包装类
2011-03-02 12:09
public class Test{
public static void main(String[] args) throws Exception {
System.out.println((char)65);
System.out.println(isWrapClass(Long.class));
System.out.println(isWrapClass(Integer.class));
System.out.println(isWrapClass(String.class));
System.out.println(isWrapClass(Test.class));
}
public static boolean isWrapClass(Class clz) {
try {
return ((Class) clz.getField("TYPE").get(null)).isPrimitive();
} catch (Exception e) {
return false;
}
}
}
Java的所有类总称Class,大写C.
基本类型:
Java的基本类型有八种:int, double, float, long, short, boolean, byte, char, void.
基本类型属于Class的一个子集。
因此:
.isPrimitive()是用来判断是否是基本类型的:void.isPrimitive() //true;
.class用来返回该类的Class对象的实例:int.class == intclass //基本类型
int.class.isPrimitive //true
Integer.class == Integer //包装类
Integer.class.isPrimitive //false
.TYPE是返回基本类型的Class实例,所以:int.class == Integer.TYPE //true;
除了int Integer,类似的有 float Float; double Double; string String等。
基本类存储在栈中,包装类村住在堆中,栈是LIFO(后进先出),基本类的存取速度更快。
JAVA 虚机自动完成基本类与包装类的转换
基本类型的包装类都采用final修饰方法,因此无法继承它们扩展的新类,也无法重写它们的方法。
包装类:
包装类是基本类的扩展
int i=2, Integer i = new Integer(2); 其实这个过程是由自动转换的,定义了int i=2就不用关心将其转换为包装类的过程。这就是为什么基本类型不需要new,例如 int i = new int() i =2;是多余的。
此外,HashMap ArrayList等不能将基本类加入其中,而只能加入包装类。一个典型的实例:
Map<int, Object> testMap = new HashMap<int, Object>();就是错误的
而应该把int换成Integer。
最后,如何判断一个对象所属的类型:
常见的一个典型错误是 object.getClass.isPrimitive()
许多人指望靠此判断object是不是一个数字或者布尔。其实这样返回的是该对象的类型,如java.lang.double,而非类型的基本类型,因此是错误的。
正确的步骤是:
object instanceof String
Number
Boolean
Character
null
搞懂java的基本类型就不在会为判断对象而发愁。
package isAssignableForm;
public class start {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a = 2;
System.out.println(a instanceof Number); //t
System.out.println(Object.class.isAssignableFrom(Number.class)); //t
System.out.println(Integer.TYPE.isPrimitive()); //t
System.out.println(Integer.class.isPrimitive()); //f
System.out.println(int.class); //int
System.out.println(char.class); //char
System.out.println(int[].class); //class [I
System.out.println(char[].class); //class [C
System.out.println(new int[0].getClass()); //class [I
System.out.println(new int[0].getClass().getComponentType()); //int
}
}
分享到:
相关推荐
### Java基本数据类型详解 #### 一、引言 在Java编程语言中,理解基本数据类型对于编写高效、可靠的程序至关重要。本文将详细介绍Java中的基本数据类型,包括它们的定义、范围、存储空间以及如何在实际开发中正确...
在Java编程语言中,泛型(Generics)是一种强大的特性,它允许我们在编写代码时指定容器(如集合)可以存储的数据类型。这提高了代码的安全性和效率,因为编译器可以在编译时检查类型,避免了运行时...
在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能没有明确的扩展名,或者扩展名被恶意篡改。文件头内容通常包含特定的标识符,这些标识符是文件格式的...
本项目名为"java 解析Excel 并判断解析的数据类型__Eclipse工程",显然是一个使用Java语言在Eclipse环境下实现的程序,其主要功能是读取Excel文件并识别其中各单元格的数据类型。 首先,我们需要了解Java中用于解析...
Java是一种广泛使用的面向对象的编程语言,它的核心特性之一就是它的基本数据类型。基本数据类型是Java语言预定义的,它们是固定大小的,不能被继承,也不需要通过类来创建对象。在Java中,基本数据类型分为数值类型...
#### 2.3 三角形类型的判断 根据三角形边长的不同,三角形可以分为以下几类: - **等边三角形**:所有边长相等。 - **等腰三角形**:至少有两条边相等。 - **不等边三角形**(或称普通三角形):没有边相等。 在...
数组元素可以是基本类型,也可以是对象类型。 在类和对象的知识点中,Java允许定义构造函数来初始化对象,即使没有显式定义,也会有一个默认的无参构造器。类变量是所有对象共享的,而实例变量在每个对象中都有独立...
在Java编程中,数据类型转换是一项基本且重要的技能。本文档将详细介绍Java中的数据类型转换,包括简单数据类型之间的转换、字符串与其他数据类型的转换以及一些实用的数据类型转换技巧。掌握这些转换方法能够帮助...
1. **变量与数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。理解它们的用法和范围是编写Java代码的基础。 2. **运算符**...
**一、Java基本数据类型** 1. **整型(Integral Types)** - `byte`: 占用1字节,取值范围-128到127。 - `short`: 占用2字节,取值范围-32,768到32,767。 - `int`: 占用4字节,取值范围-2,147,483,648到2,147,...
### 理解Java中的基本数据类型 Java作为一种广泛使用的编程语言,在Web开发等领域占据了重要的地位。对于初学者而言,掌握Java的基本数据类型是至关重要的第一步。本文将深入探讨Java中的八种基本数据类型:`...
### Java中的八种基本数据类型 Java是一种广泛使用的面向对象编程语言,它具有简单、面向对象、健壮、安全、独立于平台、可移植、解释型、高性能、多线程和动态等特点。Java语言提供了八种基本数据类型,用于表示...
判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```java public static boolean isLeapYear(int year) { return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)); } ...
### Java基本数据类型及其封装类 Java是一种广泛使用的面向对象编程语言,支持多种数据类型来满足不同的编程需求。其中,基本数据类型是最基础且最常用的元素之一。它们直接存储值而不是对象引用,因此效率较高。...
本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助你全面理解这一技术。 首先,Java与Excel的交互通常依赖于第三方库,如Apache POI或JExcelAPI。Apache POI是目前最常用的一个,它提供了丰富的...
这些包装类提供了许多实用的方法,如将基本类型转换为字符串,比较数值,以及提供常量(如`MIN_VALUE`和`MAX_VALUE`)来获取每个数据类型的取值范围。 在实际编程中,理解并灵活运用这些基本数据类型是提高代码质量...
### Java的基本数据类型 在Java编程语言中,共有八种基本数据类型,这些类型可以直接用于程序设计而无需通过引用操作。下面将详细介绍这八种基本数据类型:`byte`、`short`、`int`、`long`、`float`、`double`、`...
"Java基本数据类型" Java 是一种强类型语言,意味着每一个变量都必须有一个声明的类型。在 Java 中,有两种类型:基本类型(primitive type)和复合数据类型(reference type)。 一、逻辑类(boolean) 在 Java ...
### Java基本数据类型详解 #### 一、Java基本数据类型概览 在Java语言中,基本数据类型(Primitive Data Types)是指直接存储数值而不通过对象间接存储的数据类型。Java提供了八种基本数据类型,分为四类:逻辑型...
Java编程语言中的布尔类型(Boolean Type)是编程中不可或缺的一部分,它主要用于逻辑判断和流程控制。布尔类型由关键字`boolean`定义,其值只能是`true`或`false`,这两种值代表逻辑上的真和假。与其他数据类型不同...