将LinkedList <超类>添加/铸造到LinkedList <子类>

时间:2019-12-01 22:21:26

标签: java casting linked-list add

我有以下问题。在目录结构中,抽象类FSElement由其子类DirectoryFile扩展。 每个Directory都有一个LinkedList<FSElement> children来填充各自的子文件和目录。 在我的问题中,我只想用LinkedList<Element> subDirs中的目录填充children,但是.add()只允许添加FSElement

如何将此FSElement投射到Directory并将其添加到链接列表中?任何帮助表示赞赏。

public class Directory extends FSElement {

    // Fields
    private LinkedList<FSElement> children;
    public FileSystem fileSystem;
    private LinkedList<Directory> subDirs;

[...]

    public LinkedList<Directory> getSubDirectories(){
        for(int i=0; i < children.size(); i++) {
            if(children.get(i).isDirectory()) {
                this.subDirs.add(children.get(i)); // ERROR occurs here
            }
        return this.subDirs;
        }
    }
}

0 个答案:

没有答案