Как правильно кастовать? - PullRequest
0 голосов
/ 19 октября 2018
protected final Class<? extends MyBaseClass>[] getClasses(){
    return new Class[]{
        MyClass1.class,
        MyClass2.class
    };
}

Теперь, будучи разработчиком, я знаю, что MyClass1 и MyClass2 расширяют MyBaseClass, но как мне сделать это правильно, чтобы IDE / компилятор не выдавал предупреждение?

1 Ответ

0 голосов
/ 19 октября 2018

Вы не можете попасть туда без подавления предупреждений.Вам либо приходится иметь дело с ошибкой времени компиляции, препятствующей созданию массива универсального типа, или с текущим предупреждением.

Ближайшая альтернатива - заставить ваш метод возвращать тип коллекции:

protected final List<Class<? extends MyBaseClass>> getClasses() {
    return Arrays.asList(MyClass1.class, MyClass2.class);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...