泛型的思忖 未完
泛型的思考 未完先上代码:class DataModel {private int totalprivate ListObject rowspublic int get
泛型的思考 未完
先上代码:
class DataModel {private int total;private List<Object> rows;public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public List<Object> getRows() {return rows;}public void setRows(List<Object> rows) {this.rows = rows;}}public class Client {public static void main(String[] args) {List list = new ArrayList<Person>();List<Person> list1 = new ArrayList<Person>();Person p1 = new Person();list.add(p1);Object o = new Person();list1.add((Person)o);DataModel data = new DataModel();data.setRows(list1);data.setRows(list);}}
再上图:
问题:
1. 告警原因:没有对List这个接口进行泛型参数化
2. 错误提示原因:The method setRows(List<Object>) in the type DataModel is not applicable for the arguments (List<Person>)
3. 尝试思路1:多态中向上转型必须现有向下转型,注释代码就是尝试,依然报错
4. 泛型无法识别继承关系?
5. 为什么27行的list可以调用setRows?
List list = new ArrayList<Person>();
这个也是可行的,ArrayList是否泛型参数化有什么影响?
6. 27行的list可以接受任意类型的对象,那为什么一定要引入泛型?泛型的作用是什么?
7. 泛型来自于C++的模板,是不是要把C++中的模板搞清楚?
8. 问题偶然发现于Json数据的后台封装,Ext中store中的JsonReader配置totalProperty和root,对应一个Javabean就可以从后台获取数据到前台,数据是何时写入到response中的?而对于TreeLoader的dataUrl,如果去读txt文件,jsp文件,js文件是可以写入到树结构中的,但是通过action到后台的话,需要通过servlet的response.getWriter()拿到字节输出流,显示的调用write()函数,否则response的响应值为null,树结构无法生成,为什么?
9. 太忙,还没有细致的去调查原因,先记录问题,手头事情忙完再来续写这篇博客。