很长时间没来简书了,说不上忙,却也不想写东西,不想学习;
只是最近突发奇想,想用java实现js数组——及用一个List对象去储存各种各样类型的数据。js是弱类型语言,其灵活的语法给开发带来了极大的便利。用对象字面量创建一个js数组,可以存放各种类型的 数据;
![](https://img.haomeiwen.com/i7901113/c45c0defbe6974c7.png)
如果我想用java实现同样的效果怎么办?既然是一个数组对象,肯定得使用List对象,要在该List中存储不同类型得数据,那么泛型肯定不能是具体的某个类,所以泛型使用Objecct,所有Java类的父类。
![](https://img.haomeiwen.com/i7901113/e0afe185ec24fb3d.png)
但是用的真实场景,着实不多,至少到目前我还没遇到过,关于上述的实现方式,我想用List<?>,Java的无界通配符实现,却没能实现;使用List<?> list = new ArrayList<>();
只能用另一个List对象赋值给它,却不能直接使用list.add(object) 方法填充list,预编译检查都通不过,编译器认为add中的对象与<?>参数类型不匹配;但是却可以用另一个list赋值给List<?>定义的list;
如上就是实现一个存储任何数据类型的list,与js的array类似,不过java中这样的使用场景很少。此外,java泛型的功能实在强大,如果要详细了解的话建议读《Java编程思想》第十五章泛型。
网友评论