干货

java泛型温习

2014-05-03  本文已影响50人  UncleRiver

今天遇到有人向我问一道题目,其中一个要求是,从一个数组中取出元素并还原成其原来的类型——这个数组中的元素以抽象类保存:

pubic class Business{

    ArrayList<BookAbs> list;

}

题目提示,BookAbs中可以设置一个标志来表示当前类的类型。

我说,这样的话,这个标志可以直接是当前类的类型,这样就可以直接根据这个标志进行类型转换了。可惜对方初学者,一时半会没办法讲明白……

大概可以这样写?:

//这段代码可能有错,明天去公司看看其他类似的方法是怎么实现的

public T extends BookAbs getBook(BookAbs bookAbs, Class T){

    return (T) bookAbs;

}

不知道怎么写对不对。

另外,就算可以返回BookAbs 的子类类型实例, 也没有什么实际意义,因为还是只能调用父类定义的方法,

BookAbs result = business.getBook(book, book.class);

再不然,要调用子类的方法,就是另一个深度的问题了。

哎,新装了系统之后还没有装eclipse呢……

上一篇下一篇

猜你喜欢

热点阅读