Я очень доволен:
foreach (Foo f in foos)
foreach (Bar b in bars)
if (f.Equals(b))
return true;
return false;
Лично я не понимаю, почему
foreach (Foo f in foos)
{
foreach (Bar b in bars)
{
if (f.Equals(b))
{
return true;
}
}
}
return false;
читаем больше.
Да, строки бесплатны, но почему мне приходится прокручивать страницы и страницы кода, когда это может быть вдвое меньше?
Если есть разница в читаемости или ремонтопригодности, то, конечно, поместите скобки в ... но в этом случае я не вижу никаких причин.
Кроме того, я всегда помещает скобки для вложенных if, где у меня есть вложенный
if (condition1)
if (condition2)
doSomething();
else (condition2)
doSomethingElse();
vs
if (condition1)
if (condition2)
doSomething();
else (condition2)
doSomethingElse();
ужасно запутанно, поэтому я всегда пишу его как:
if (condition1)
{
if (condition2)
doSomething();
else (condition2)
doSomethingElse();
}
По возможности я использую тернарные операторы, но I never гнездятся в них .
Вам нужно проанализировать его как JsonNode
, выполнить итерацию по каждому узлу в массиве и преобразовать в Book
:
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
JsonNode root = mapper.readTree(json); // read as JsonNode
JsonNode items = root.at("/items");
List<Book> books = new ArrayList<>();
if (items.isArray()) {
ArrayNode array = (ArrayNode) items;
array.forEach(n -> {
Book book = mapper.convertValue(n.get("volumeInfo"), Book.class); // convert to Book
books.add(book);
});
}
System.out.println(books);