TypeToken 是google提供的一个解析Json数据的类库中一个类
2016-03-14 22:04
357 查看
Type listType = new TypeToken<LinkedList<User>>(){}.getType(); Type是java里的reflect包的Type ,TypeToken 是google提供的一个解析Json数据的类库中一个类 问题1:如果我没有写大括号{};就是TypeToken<LinkedList<User>>()后面的这个{},eclipse会报出 构造函数不可见,加上就好了,可是我在自己创建的2个测试类里 这样做就不行,如果构造是private的,加不加大括号都不行这是为什么 问题2:通常情况下,不加大括号是什么情况?加上又是什么情况,他们的含义是什么,作用是什么, 不加大括号表示很普通的new一个对象。。如果那个类的构造方法是私有的。。肯定不能直接new了。。就会编译报错。。 加上大括号表示你new了一个匿名内部类的对象。。比如new TypeToken<LinkedList<User>>(){}。。表示你new的是一个匿名内部类的对象。。这个匿名类继承自TypeToken类。。你可以在大括号里面像写其他普通类代码一样随意写代码。。你可以在里面定义个方法等等。。 主要你不能理解的原因我想是你不了解内部类。。多看内部类的知识就会明白了。。new TypeToken<LinkedList<User>>(){}匿名内部类常用在监听里面。。比如我们给一个按钮加监听。。比如 JButton btn = new JButton("test"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); btn.addActionListener()方法接受的是一个ActionListener类型的对象。。而ActionListener是一个接口。。不能直接new。。所以本来我们应该写一个类实现ActionListener接口。。然后这里给他传一个那个实现类的对象。。但是。。我们不想那么麻烦了。。因为这种情况太多。。所以我们直接在这里创建了那个类。。之所以叫匿名。。就是我们没有给他取名字就让他叫ActionListener接口的名字。。然后在这里实现那个方法。。
相关文章推荐
- 使用jsp/servlet简单实现文件上传与下载
- Django1.9中静态文件配置(css,js,image都会被当做静态文件处理)
- c#后台将数据转换为json字符串,前台ajax解析json字符串
- 【Mocha.js 101】Mocha 入门指南
- 【Mocha.js 101】Mocha 入门指南
- JS的内置对象
- JS基础回顾,小练习(DOM元素)
- 第一个JavaScript
- Jsp到Action后台的数据接收方法
- JSP内置对象二(response和session对象)
- JavaScript高级程序设计(第三版)学习笔记20、21、23章
- 由浅及深js运动框架
- 组合继承
- html中插入css和js
- JavaScript中的创建对象
- js问题
- javascript实现查看html网页放大图片功能
- 实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
- JS基础回顾,小练习(获取一个对象里面第一层元素的数量)
- JS基础回顾,小练习(实现each方法)