Связанное несоответствие и препятствующий доступ после перехода с java6 на java8

У меня очень странная ошибка после переноса проекта PDE в bndtools и из java6 в java8. Структура очень сложная, но я уверен, что она работала в старой версии.

Ошибка в одном из моих классов, где я пытаюсь инициировать новую переменную:

GenericStorageItem<SharedItem> result;

Это приводит к следующей ошибке:

Bound mismatch: The type SharedItem is not a valid substitute for the bounded parameter <T extends Serializable> of the type GenericStorageItem<T>

Объект SharedItem определяется следующим образом:

public abstract class SharedItem extends LSContent implements Storable

Это расширяет LSContent, который выглядит так:

public abstract class LSContent implements PastContent

И, наконец, PastContent содержит ссылку на Serializable:

public interface PastContent extends Serializable

Класс, который отказывается быть связанным, является GenericStorageItem:

public class GenericStorageItem<T extends Serializable> implements StorageItem

В дополнение к этой ошибке я получаю следующее предупреждение при каждом использовании SharedItem

Discouraged access: The type 'SharedItem' is not API (restriction on required project 'the package where the class SharedItem comes from')

Из-за этого предупреждения и из-за того, что эта часть кода сработала, я думаю, что проблема как-то связана с правилами доступа. Я заглянул в Свойства проекта и увидел, что правило доступа не рекомендуется:** где на всех внешних банках.

Прочитав этот пост, я попытался удалить правила, но по какой-то причине после применения снова переключился.

Я надеюсь, что у кого-то из вас есть идея, как решить эту проблему.

0 ответов

Другие вопросы по тегам