`

java判断是否基本类型,基本类型与对应的包装类

 
阅读更多
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的基本类型就不在会为判断对象而发愁。
分享到:
评论

相关推荐

    Java基本数据类型与对应的包装类(动力节点java学院整理)

    这些包装类使得基本类型能够与面向对象的概念更好地融合,提供了更多的功能和便利。下面将详细介绍Java中的基本数据类型及其包装类,并探讨它们之间的异同。 一、Java的基本数据类型 1. 整数类型:包括`int`(32位...

    java包装类集合类详解

    在Java中,为了更好地处理基本数据类型(如`int`、`double`等),Java提供了八种包装类,每种包装类都将基本数据类型“封装”起来,使得基本类型也能拥有对象特性,并能调用方法。这些包装类不仅提供了数据的封装,...

    Java基本类型与包装类详细解析

    包装类与基本类型之间存在显著的差异: 1. 声明方式:基本类型直接声明,如`int num = 10;`,而包装类型需要使用new关键字,如`Integer numObj = new Integer(10);`。 2. 存储机制:基本类型直接在栈中存储,封装...

    java 包装类发给的发广告豆干

    包装类解决了Java语言中基本类型与对象之间转换的不便,使得基本类型的数据可以像对象一样进行操作。每个基本数据类型都有一个对应的包装类,这些包装类都位于`java.lang`包中。 1. 包装类与基本数据类型的对应关系...

    JAVA对象以及数据的工具类

    包装类提供了许多便利的方法,例如,将字符串转换为对应的数值类型,或者进行数值比较。 在处理对象时,工具类经常扮演重要角色。例如,Apache Commons Lang库中的StringUtils类,提供了大量处理字符串的方法,如...

    Java -核心类库 Object类常方法 Math类常用方法 System类常用方法 基本类型包装类常用方法等

    Java为每种基本数据类型都提供了对应的包装类,这些包装类不仅封装了基本类型的值,还提供了许多有用的静态方法。 1. **valueOf() 方法**:将字符串转换为相应类型的对象。 2. **parseInt() 方法**:将字符串转换为...

    JAVA数据类型转换.pdf

    Java提供了六个包装类用于表示简单数据类型:`Boolean`、`Character`、`Integer`、`Long`、`Float`和`Double`。这些包装类可以作为中介来进行类型转换。例如,将`float`类型的变量转换为`double`类型: ```java ...

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

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

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

    ### Java基本数据类型及其...这些封装类不仅提供了一种将基本类型值包装为对象的方式,而且还提供了许多方便的方法来处理这些数据类型,使开发者能够更加高效地编写代码。理解这些基本概念对于学习 Java 编程至关重要。

    Java基本类型包装类概述与Integer类、Character类用法分析

    Java基本类型包装类概述与Integer类、Character类用法分析 Java基本类型包装类概述: Java基本类型包装类是将基本数据类型封装成对象的,以便在对象中定义更多的功能方法来操作该数据。常用的操作之一是用于基本...

    Java中long类型与Long类型的区别和大小比较详解

    Long类型是long类型的包装类,而Byte和Float也是基本类型的包装类。 Long类型和long类型的区别 Long类型是一个对象类型,它是long类型的包装类。Long类型可以通过new关键字创建,而long类型是基本数据类型,不能...

    Java SE编程入门教程 java判断循环(共79页).ppt

    - `java包装器`将原始类型与对应的类关联,如`Integer`对应`int`。 - `java反射机制`允许程序在运行时检查和操作类的信息。 - `java泛型`增加了类型安全性,允许在容器中存储特定类型的对象。 - `java集合`涵盖了...

    Java SE编程入门教程 java包装器(共9页).pptx

    除了Boolean和Character之外,其他包装类还提供了`parseXxx`静态方法,可以将字符串直接转换为对应的基本数据类型值,如`Integer.parseInt("116")`会将字符串"116"转换为int类型的值116。 Character类是专门处理...

    Java常用类讲义大全.docx

    本文主要讲解Java中常用的类,包括字符串类String、StringBuffer、基本类型对应的8个包装类、日期相关类、数字相关类、Random类和Enum类。下面是对每个类的详细解释: 一、String类 String类是不可变类,也就是说...

    东北大学 考研复试 Java程序设计

    对象包装类是Java中的一种基本类型,包括Integer、Double、Boolean等。这些类提供了对应的基本类型的包装,例如:Integer i = new Integer(10);。 五、集合类 集合类是Java中的一种数据结构,包括ArrayList、...

    Java你不知道的包装类

    Java中的包装类是针对基本数据类型(如int、char、double等)的一种特殊设计,它为每个基本类型提供了一个对应的类,例如Integer对应int,Character对应char,Double对应double。这些包装类允许基本类型的数据以对象...

    Java数据类型

    Java为了便于操作基本数据类型,提供了对应的包装类,如`Integer`、`Float`、`Character`和`Boolean`。这些类实现了`Comparable`和`Serializable`接口,可以方便地进行比较和序列化操作。包装类还有许多实用方法,...

    Java Number & Math 类.pdf

    每个包装类对应一个基本数据类型,可以用来封装基本类型,并提供额外的功能,如自动装箱和拆箱、比较操作等。 Java的Math类包含了一系列用于执行基本数学运算的静态方法,如指数、对数、平方根、三角函数等。例如,...

    青麦丨Java本数据类型.docx

    这些包装类提供了很多方便的方法,例如将基本类型转换成字符串,以及进行各种数值操作。 在实际编程中,可以通过访问这些包装类的静态常量来获取基本数据类型的取值范围,例如 `Byte.MIN_VALUE` 和 `Byte.MAX_VALUE...

Global site tag (gtag.js) - Google Analytics