扩展像ArrayList这样的Java集合类,以便更容易地进行泛型管理(警告......等)?

时间:2013-04-25 17:21:07

标签: java generics collections

扩展Java默认集合不被视为良好做法。 但我想知道,为了更清洁的代码,一个人不会扩展,说ArrayList摆脱泛型。例如

public class DoodleList extends ArrayList<Doodle> {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

}

所以在一个代码中你做了一些像“someFramework.getContentAs(DoodleList.class)”这样的事情,没有关于泛型的那些讨厌的警告......等等。

注意 在我的情况下,包装List可能不是一个选项:该类将用于JSON映射,其中所需的输出是:

{doodles:[doodle1,doodle2,doodle3]}

not {doodles:{innerCollection:[doodle1,doodle2,doodle3]}}

2 个答案:

答案 0 :(得分:1)

通过玩弄继承气味来掩盖令人讨厌的警告。

为什么不使用注释来抑制警告。例如:

@SuppressWarnings("unchecked")
someFramework.getContentAs(ArrayList.class)"

答案 1 :(得分:1)

如果您真的只想摆脱警告,请使用SuppressWarnings

但是,如果DoodleList不仅仅包含ArrayList<Doodle>,实现特定于涂鸦的逻辑,我认为扩展ArrayList<Doodle>没有问题。