这是使用instanceof的情况?

Ren*_*ani 0 java instanceof

我有一个叫做Document可以通过Page或扩展的类Image.对于每一个我在数据库中有一个插入方法.用于插入PageImage包括用于插入Document.

我怀疑的是,确定将调用哪种方法的方法是首先验证类,如下所示:

if (doc instanceof Document){
    insertDoc(doc);
}
if (doc instanceof Page){
    insertPage(doc);
}
if (doc instanceof Image){
    insertImage(doc);
}
Run Code Online (Sandbox Code Playgroud)

或者还有另一种方式,因为我总是听说使用instanceof不是一件好事.

编辑:多态在这种情况下不起作用,对吗?像insert(Document doc),insert(Page doc)insert(Image doc).

MBy*_*ByD 8

我认为最好在Document类中实现insert方法,并在扩展它的类中使用适当的方法覆盖它.然后,打电话doc.insert();.