java基本类型的包装类型_java判断是否基本类型,基本类型与
对应的包装类
在程序开发中,我们经常需要在基本数据类型和字符串之间进⾏转换。 基本类型转换为字符串有三种⽅法: 使⽤包装类的 toString() ⽅法使⽤String类的 valueOf() ⽅法 ⽤⼀个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 //将基本类型转换为字符
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) Field("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.clas1.基本类型-------》字符串
(以int型为例) public void BasicType2String(){
int a = 2;
//⽅法①:将基本类型封装为对象,再调⽤toString()⽅法
String str1 = new Integer(a).toString();
//⽅法②:⽤空字符串加上基本类型数据
java valueof
String str2s == 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 testMap = new HashMap();就是错误的 ⽽应该把int换成Integer。
最后,如何判断⼀个对象所属的类型: 常见的⼀个典型错误是 Class.isPrimitive() 许多⼈指望靠此判断object是不是⼀个数字或者布尔。其实这样返回的是该对象的类型,如java.lang.double,⽽⾮类型的基本类型,因此是错误的。 正确的步骤是: object instanceof String
Number
Boolean
Character
null 搞懂java的基本类型就不在会为判断对象⽽发愁。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。