Не уверен, каков ваш полный контекст, но часть решения может включать в себя генерики для получения нужного вам результата, например:
public <T extends IdentifierBase> T getIdentifier(Class<T> kindYouWant) { ... }
Идея в том, что вы говорите, какой вкус вам нужен,и он может либо конвертировать с максимальным усилием, либо вернуть Null, если такого рода нет.
Как я уже сказал, не уверен в вашем полном вопросе ...