请求大神给我举例几种强制类型转换和几种隐性类型转换的实例!谢谢!有关web前端的,java语言。

如题所述

    类型强制转换:

    1. 因为Java中多态机制决定子类可以安全的以父类存在,所以有时候为了保证参数的多样性,我们会把一部分类型的对象转换为Object型,接收时候再按照需求进行转型、使用。

如:可以传入多种类型参数的方法。

public void test(Object obj) {
if (obj instanceof String) { // 如果传入为String
String str = (String) obj;
}
if (obj instanceof Integer) { // 传入为Integer
Integer it = (Integer) obj;
}
}

    2. 集合类中的List、Set、Map等,如果在定义类型时使用Object或者元类型,则也需要在使用时进行选择性的转型。

List list = new ArrayList(); // List<Object>
list.add(123);
list.add(new Integer(123));
list.add("456");
list.add(new Object());
Integer num = (Integer) list.get(0);
String str = (String) list.get(2);

    自动打包、解包机制及基本数据类型的转换

    1.相比隐性转型,我更倾向于把基本数据类型与包装类之间的转换称为自动打包、解包。这种转换不需要写程序的时候进行人为干涉,在程序执行时,自动在基本数据类型和封装类之间进行转换。

List<Integer> list = new ArrayList<Integer>();
int num = 123;
list.add(num);
Integer num2 = list.get(0);

double d1 = 1.2d;
Double d2 = d1;

Character c1 = '中';
char c2 = c1;

    2.基本数据类型相互转换

    一种为精度(或者说范围)大的转换为精度小的,因为不存在损失精度的问题,可以直接转换过去。

int num = 15;
double d1 = num;
long l1 = num;

    具体的可以参考java中8大基本数据类型对应的范围,数值型的基本类型,都可以不加强制转型的从范围大的转换为范围小的。

    另一种就是范围小的转换为范围大的,存在数值溢出(精度丢失)的风险,所以需要进行强制转型。在转换时需注意超出范围的情况。

int a = 128;
byte b1 = (byte) a;
char c1 = (char) b1;
short s1 = (short) c

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网