`
popwang
  • 浏览: 59530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java基本类型判断

阅读更多

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中的基本数据类型,包括它们的定义、范围、存储空间以及如何在实际开发中正确...

    java 泛型类的类型识别示例

    在Java编程语言中,泛型(Generics)是一种强大的特性,它允许我们在编写代码时指定容器(如集合)可以存储的数据类型。这提高了代码的安全性和效率,因为编译器可以在编译时检查类型,避免了运行时...

    java通过文件头内容判断文件类型

    在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能没有明确的扩展名,或者扩展名被恶意篡改。文件头内容通常包含特定的标识符,这些标识符是文件格式的...

    java 解析Excel 并判断解析的数据类型__Eclipse工程

    本项目名为"java 解析Excel 并判断解析的数据类型__Eclipse工程",显然是一个使用Java语言在Eclipse环境下实现的程序,其主要功能是读取Excel文件并识别其中各单元格的数据类型。 首先,我们需要了解Java中用于解析...

    Java 基本数据类型及表达式

    Java是一种广泛使用的面向对象的编程语言,它的核心特性之一就是它的基本数据类型。基本数据类型是Java语言预定义的,它们是固定大小的,不能被继承,也不需要通过类来创建对象。在Java中,基本数据类型分为数值类型...

    用java编写有关判断是否为三角形

    #### 2.3 三角形类型的判断 根据三角形边长的不同,三角形可以分为以下几类: - **等边三角形**:所有边长相等。 - **等腰三角形**:至少有两条边相等。 - **不等边三角形**(或称普通三角形):没有边相等。 在...

    JAVA程序设计判断题题库81道

    数组元素可以是基本类型,也可以是对象类型。 在类和对象的知识点中,Java允许定义构造函数来初始化对象,即使没有显式定义,也会有一个默认的无参构造器。类变量是所有对象共享的,而实例变量在每个对象中都有独立...

    JAVA数据类型转换.pdf

    在Java编程中,数据类型转换是一项基本且重要的技能。本文档将详细介绍Java中的数据类型转换,包括简单数据类型之间的转换、字符串与其他数据类型的转换以及一些实用的数据类型转换技巧。掌握这些转换方法能够帮助...

    java基本程序代码

    1. **变量与数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。理解它们的用法和范围是编写Java代码的基础。 2. **运算符**...

    Java基本数据类型及操作相关实例

    **一、Java基本数据类型** 1. **整型(Integral Types)** - `byte`: 占用1字节,取值范围-128到127。 - `short`: 占用2字节,取值范围-32,768到32,767。 - `int`: 占用4字节,取值范围-2,147,483,648到2,147,...

    理解java中的基本数据类型

    ### 理解Java中的基本数据类型 Java作为一种广泛使用的编程语言,在Web开发等领域占据了重要的地位。对于初学者而言,掌握Java的基本数据类型是至关重要的第一步。本文将深入探讨Java中的八种基本数据类型:`...

    Java中8中基本数据类型

    ### Java中的八种基本数据类型 Java是一种广泛使用的面向对象编程语言,它具有简单、面向对象、健壮、安全、独立于平台、可移植、解释型、高性能、多线程和动态等特点。Java语言提供了八种基本数据类型,用于表示...

    JAVA日期判断方法小结

    判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```java public static boolean isLeapYear(int year) { return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)); } ...

    java程序设计项目化教程\技术文章\java基本数据类型

    ### Java基本数据类型及其封装类 Java是一种广泛使用的面向对象编程语言,支持多种数据类型来满足不同的编程需求。其中,基本数据类型是最基础且最常用的元素之一。它们直接存储值而不是对象引用,因此效率较高。...

    java 导入及判断的Excel 使用方法

    本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助你全面理解这一技术。 首先,Java与Excel的交互通常依赖于第三方库,如Apache POI或JExcelAPI。Apache POI是目前最常用的一个,它提供了丰富的...

    Java 基本知识之基本数据类型

    这些包装类提供了许多实用的方法,如将基本类型转换为字符串,比较数值,以及提供常量(如`MIN_VALUE`和`MAX_VALUE`)来获取每个数据类型的取值范围。 在实际编程中,理解并灵活运用这些基本数据类型是提高代码质量...

    java 的基本数据类型

    ### Java的基本数据类型 在Java编程语言中,共有八种基本数据类型,这些类型可以直接用于程序设计而无需通过引用操作。下面将详细介绍这八种基本数据类型:`byte`、`short`、`int`、`long`、`float`、`double`、`...

    Java基本数据类型.pdf

    "Java基本数据类型" Java 是一种强类型语言,意味着每一个变量都必须有一个声明的类型。在 Java 中,有两种类型:基本类型(primitive type)和复合数据类型(reference type)。 一、逻辑类(boolean) 在 Java ...

    java基本数据类型

    ### Java基本数据类型详解 #### 一、Java基本数据类型概览 在Java语言中,基本数据类型(Primitive Data Types)是指直接存储数值而不通过对象间接存储的数据类型。Java提供了八种基本数据类型,分为四类:逻辑型...

    Java基本数据类型---布尔类型.pdf

    Java编程语言中的布尔类型(Boolean Type)是编程中不可或缺的一部分,它主要用于逻辑判断和流程控制。布尔类型由关键字`boolean`定义,其值只能是`true`或`false`,这两种值代表逻辑上的真和假。与其他数据类型不同...

Global site tag (gtag.js) - Google Analytics