У меня есть следующий фрагмент кода, который я пытался исправить:
В файле контекста Spring есть конфигурация компонента, что-то вроде этого:
<bean id="myBean" >
<property name="interface">
<value>com.company.data.DataClass</value>
</property>
</bean>
С соответствующимsetter следующим образом:
public void setInterface(Class<?>[] interfaces)
{
this.worker.setInterfaces(interfaces);
}
Это работает, когда класс существует.
Но в определенных средах класс может не существовать, и тогда выдается ошибка.Вместо этого мы хотели бы обработать ошибку, когда класс недоступен.
Я попытался исправить установочный код следующим образом, но теперь он терпит неудачу, когда класс действительно существует: java.lang.ClassCastException: java.lang.String не может быть приведен к [Ljava.lang.Class
public void setInterface(Object interfaceTest)
{
try
{
Class<?>[] interfaces = (Class<?>[])interfaceTest);
this.worker.setInterfaces(interfaces);
}
catch(Exception ex)
{
this.notValidInterface = true;
}
}
Я не уверен, почему обработка здесь отличается.