var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
console.log(myArray.length); //3
myArray = $.grep(myArray, function(element, index){return element.field == "money"}, true);
console.log(myArray.length); //2
Элемент - это объект в массиве. Третий параметр true
означает, что будет возвращен массив элементов, который не выполняет вашу логику функции, false
означает, что будет возвращен массив элементов, который не выполняет вашу функциональную логику.
Вам нужно добавить зависимость JAXB (как это больше не предоставляется по умолчанию в Java 9), и вам нужно использовать Spring Boot 2. Обратите внимание, что если вы используете Java 10 (и, возможно, следующие версии), у вас будет точно такая же проблема, как удаление зависимостей JAXB, было сделано не только для версии Java 9.
Вики-страница Spring Boot о Java 9 перечисляет все, что вам нужно знать для запуска Приложения Spring Boot на Java 9.
Spring Boot 1 не поддерживает его (и не планируется). Spring Boot 2 поддерживает его.
Spring Boot 2 - первая версия поддержки Java 9 (также поддерживается Java 8). Если вы используете 1.5 и хотите использовать Java 9, вы должны обновить до 2.0, так как мы не планируем поддерживать Java 9 в Spring Boot 1.5.x.
Некоторые известные обходные пути
AspectJ
С Java 9, если вам нужно сплести классы из JDK, вам необходимо использовать AspectJ 1.9 (сейчас в RC). Это должно быть временным решением, поскольку Aspect 1.9 GA находится за углом, и Spring Boot обновится до него. Spring AOP должен работать нормально в большинстве случаев с AspectJ 1.8 (по умолчанию в моментальных снимках Spring Boot).
JAXB
При обновлении вы можете столкнуться с следующим :
java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException
Для спящего режима обычно требуется JAXB, который больше не предоставляется по умолчанию. Вам нужно либо добавить зависимость к вашему проекту:
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency>
Тестирование
В последней версии maven-surefire-plugin (2.20.1) была введена регрессия, когда выполняемые тесты на Java 9. Вы можете либо понизить до 2.20.0, либо явно добавить один модуль, чтобы предотвратить его включение java.se.ee:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>--add-modules java.base</argLine> </configuration> </plugin>
Некоторые известные ограничения
Эти библиотеки еще не имеют полной поддержки Java 9:
- Apache Cassandra, см. # 10453
- JSP TLD со встроенным Tomcat, если он не запущен как упакованная война, см. # 10456
Пожалуйста, не стесняйтесь редактировать этот пост, если происходят изменения совместимости Java 9 с Spring Boot.
Добавлена ниже зависимость и разрешена проблема
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>