Re: Проверить имплементирует ли класс определенный интерфейс
От: sdo.daemon  
Дата: 17.04.10 07:14
Оценка: +1
Здравствуйте, the_moon, Вы писали:

_>Привет,


_>пишу программку, она читает конфиг в котором прописанно имя класса, объект которого будет потом создаваться. Классы, которые будут прописываться в конфиге имплементируют определенный интерфейс и в мне хотелось бы в программке предварительно проверить, имплементирует ли класс, прочитанный из конфига этот Интерфейс или нет.



_>Попробовал так, где RVImporter это как раз и есть интерфейс


_>
_>        String iclass = imps.item(0).getAttributes().getNamedItem("class").getNodeValue();

_>        Class theClass  = Class.forName(iclass);
_>        Object o = theClass.newInstance();
_>        if( o instanceof RVImporter  )
_>        {
_>            throw new Exception("Specified importer class is not an importer! " + iclass );
_>        }
_>        this.importer = (RVImporter)o;
_>



_>Но проверка "o instanceof iImporter" не проходит, не инстанца говорит.


_>java.lang.Exception: Specified importer class ist not an importer! relavis.importer.ora.oraImporter


_>Как правильно эту проверку сделать, в интернете что то ничего не нашлось подходящего?


_>Спасибо


Если НЕ имплементирует то вываливай эксепшен, а то что у тебя — наоборот
if( ! (o instanceof RVImporter)  )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.