Могу ли я предотвратить автоматическое преобразование Collection без дженериков в Collection<String> в Weblogic 14

У меня есть устаревший проект Java с большим количеством коллекций без использования дженериков.
Коллекции в основном выглядят так:

          Collection myCollectionOfObjects;

    public Collection getMyCollectionOfObjects() {
        return myCollectionOfObjects;
    }

    public void setMyCollectionOfObjects(Collection myCollectionOfObjects) {
        this.myCollectionOfObjects = myCollectionOfObjects;
    }

Коллекция заполняется строками, к которым позже обращаются в JavaScript, и значение извлекается:

              myString = myCollectionOfObjects[1].value;

Мы рассматриваем возможность обновления с Weblogic 12c до Weblogic 14, но сталкиваемся с проблемами с этими коллекциями из-за того, что Weblogic 14 автоматически обрабатывает преобразование, если коллекция содержит один и тот же тип для каждой записи, а JavaScript дает сбой из-за обработки коллекции. как Collection<String>, а не Collection<Object>, что, в свою очередь, означает, чтоmyCollectionOfObjects[1].valueне определено.

Очевидное решение, конечно, состояло бы в том, чтобы изменить устаревший код для использования дженериков, но огромный объем, в котором это используется, и тот факт, что ошибка возникает в JavaScript во время выполнения, является большим препятствием.

Итак, мой вопрос: есть ли возможность, чтобы Weblogic не выполнял автоматическое преобразование?

Я изменил Collection на Collection<String>, что привело к тому, что код работал как надо.
Проблема в том, что из-за сложности унаследованного кода найти все места в коде, где это потенциально может произойти, — непосильная задача.

0 ответов

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