Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java
Когда вы проверяете (сравниваете) два объекта с помощью оператора ==
, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true
, в противном случае false
. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals
.
equals
- фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.
Example:
stringObjectOne.equals(stringObjectTwo);
Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.
Давайте посмотрим:
String one = "HELLO";
String two = "HELLO";
String three = new String("HELLO");
String four = "hello";
one == two; // TRUE
one == three; // FALSE
one == four; // FALSE
one.equals(two); // TRUE
one.equals(three); // TRUE
one.equals(four); // FALSE
one.equalsIgnoreCase(four); // TRUE
Для отфильтровывания статей, которые не имеют никакого содержания присвоенным им, необходимо будет развернуть идентификационный атрибут содержания и установить дополнительную директиву на ложь.
[
{
"/common/topic/image" : [
{
"id" : null
}
],
"article" : [
{
"content" : {
"id" : null,
"optional" : false
}
}
],
"name" : "bill gates",
"type" : "/common/topic"
}
]
Это даст Вам следующий результат:
[
{
"/common/topic/image" : [
{
"id" : "/guid/9202a8c04000641f8000000004fb4c01"
},
{
"id" : "/wikipedia/images/commons_id/4486276"
}
],
"article" : [
{
"content" : {
"id" : "/guid/9202a8c04000641f800000000903535d"
}
}
],
"name" : "Bill Gates",
"type" : "/common/topic"
}
]
Для получения дополнительной информации об использовании дополнительной директивы см. документацию здесь.