0%

Java Integer, String, Object互相转换

在类型转换的时候要非常小心,有些是编译时错误,简单些,有些是运行时错误,要特别注意。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class ConvTest {

public static void main(String[] args) {

// Integer -> String
Integer i1 = 1;
String s1 = String.valueOf(i1);
System.out.println(s1);

// String i1 = (String) i1; 不相容类型, 不能强制转换

// Integer <- String
String s2 = "1";
Integer i2 = Integer.valueOf(s2);
System.out.println(i2);

// Integer i2 = (Integer) s2; 不相容类型, 不能强制转换
int i22 = Integer.parseInt(s2);
System.out.println(i22);

// Integer - Object
Object o3 = 1;
Integer i3 = (Integer) o3; // 如果o3为字符串, 会有运行时异常, 所以建议用下面 instanceof 做类型判断
System.out.println(i3);


// Integer.valueOf(o3) // 不能用 Object 作为参数

// String - Object
Object o6 = "1";
String s6 = (String) o6;
System.out.println(s6);

Object o4 = "1";
if (o4 instanceof Integer) {
System.out.println("Integer");
} else if (o4 instanceof String) {
System.out.println("String");
}

Object o7 = 1;
String s7 = String.valueOf(o7); // 这里却可以用 Object 作为参数
System.out.println(s7);
}
}