Amos的随笔

Java/Python/Go,软件测试等等

导航

Java不同类型之间相互转换(持续更新)

背景

Java这个类型转换不好记忆,写个笔记加深记忆

double、float互转

double转float

Object a = 1.0;
float b = (Float) a;
System.out.println(b);

报错 > java.lang.Double cannot be cast to java.lang.Float
假如有这样一个场景,调用接口返回内容是:

{
	"name":"lucy",
	"price":1.1
	}

通过String转map,获取price的值得通过map.get(“price”)这种方式;于是想通过强转为float

(float)map.get(price);

这样也报错 > java.lang.Double cannot be cast to java.lang.Float , 可以看出java默认小数点数字的对象为Double类型。

这样转才是正确的:

Object a = 1.1;
float b = ((Double) a).floatValue();
double a = 1.1;
float b = ((Double)a).floatValue();
Double a = 1.1;
float b = a.floatValue();

float转double

由Float强转

Object a = 1.1f;
double b = ((Float) a).doubleValue();

可以理解为double类型的数值是包含(大于)float数据类型,可以强转;

float c = (float) 2.2; 
double d = c;
float e = 3.3f;
double f = e;

double/int互转

double 转 int

int a = (int) 100.0;

int 转 double

不需要转,直接将int赋值给double即可

Array/List互转

Array 转 List

参考Alibaba开发手册:

强制】使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法, 它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。

String[] str = new String[] { "chen", "yang", "hao" };
List list = Arrays.asList(str);

List 转 Array

参考Alibaba开发手册

强制】使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一 致、长度为 0 的空数组。

List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.toArray(new String[0]);

posted on 2018-03-24 17:48  AmosChen  阅读(32)  评论(0编辑  收藏  举报  来源