{"id":6412,"date":"2026-06-06T14:03:47","date_gmt":"2026-06-06T05:03:47","guid":{"rendered":"https:\/\/route-zero.com\/recruit\/?post_type=route&#038;p=6412"},"modified":"2026-10-06T14:03:55","modified_gmt":"2026-10-06T05:03:55","slug":"java-stream-null-objects-nonnull","status":"publish","type":"route","link":"https:\/\/route-zero.com\/recruit\/route\/6412\/","title":{"rendered":"Java Stream\u3067null\u9664\u5916\uff5cObjects::nonNull\u306e\u4f7f\u3044\u65b9"},"content":{"rendered":"<p>Java Stream\u3067null\u8981\u7d20\u3092\u9664\u5916\u3059\u308b\u3060\u3051\u306a\u3089\u3001`.filter(Objects::nonNull)`\u3067\u5bfe\u5fdc\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u306f`x -&gt; x != null`\u3092\u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3067\u66f8\u3044\u305f\u5206\u304b\u308a\u3084\u3059\u3044\u5f62\u3067\u3001\u3069\u3061\u3089\u304b\u4e00\u65b9\u3060\u3051\u304c\u7279\u5225\u306b\u5b89\u5168\u3068\u3044\u3046\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u6ce8\u610f\u3057\u305f\u3044\u306e\u306f\u300cnull\u304c\u3069\u3053\u306b\u3042\u308b\u304b\u300d\u3067\u3059\u3002Stream\u5185\u306e\u8981\u7d20\u304cnull\u306a\u306e\u304b\u3001\u305d\u3082\u305d\u3082List\u81ea\u4f53\u304cnull\u306a\u306e\u304b\u3001map\u5f8c\u306bnull\u304c\u751f\u307e\u308c\u308b\u306e\u304b\u3067\u5bfe\u7b56\u306f\u5909\u308f\u308a\u307e\u3059\u3002<\/p>\n<h2>\u307e\u305a\u7d50\u8ad6\uff1anull\u304c\u3042\u308b\u5834\u6240\u3067\u5bfe\u7b56\u3092\u5206\u3051\u308b<\/h2>\n<table>\n<thead>\n<tr>\n<th>null\u306e\u5834\u6240<\/th>\n<th>\u4e3b\u306a\u5bfe\u7b56<\/th>\n<th>\u30dd\u30a4\u30f3\u30c8<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Stream\u306e\u8981\u7d20<\/td>\n<td>filter(Objects::nonNull)<\/td>\n<td>\u5f8c\u7d9a\u51e6\u7406\u3078null\u3092\u6d41\u3055\u306a\u3044<\/td>\n<\/tr>\n<tr>\n<td>\u5143\u306eList\u81ea\u4f53<\/td>\n<td>stream()\u524d\u306bnull\u78ba\u8a8d<\/td>\n<td>filter\u3078\u5230\u9054\u3059\u308b\u524d\u306bNPE\u306b\u306a\u308b<\/td>\n<\/tr>\n<tr>\n<td>map()\u306e\u623b\u308a\u5024<\/td>\n<td>map\u5f8c\u306bfilter(Objects::nonNull)<\/td>\n<td>\u5909\u63db\u5f8c\u306b\u751f\u307e\u308c\u305fnull\u3092\u9664\u5916\u3059\u308b<\/td>\n<\/tr>\n<tr>\n<td>\u5358\u4e00\u306enullable\u5024<\/td>\n<td>Stream.ofNullable(value)<\/td>\n<td>null\u306a\u3089\u7a7aStream\u306b\u3059\u308b<\/td>\n<\/tr>\n<tr>\n<td>findFirst\/findAny\u306e\u5019\u88dc<\/td>\n<td>\u5148\u306bnull\u3092\u9664\u5916<\/td>\n<td>\u9078\u629e\u3055\u308c\u305f\u8981\u7d20\u304cnull\u3060\u3068NPE\u306b\u306a\u308b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Oracle\u306e`Objects.nonNull`\u306f\u3001`filter(Objects::nonNull)`\u306e\u3088\u3046\u306bPredicate\u3068\u3057\u3066\u4f7f\u3046\u305f\u3081\u306eAPI\u3067\u3059\u3002\u307e\u305a\u300c\u8981\u7d20\u306enull\u300d\u3068\u300cStream\u3092\u4f5c\u308b\u524d\u306enull\u300d\u3092\u5206\u3051\u308b\u3068\u3001\u4e0d\u8981\u306aNPE\u5bfe\u7b56\u3092\u5897\u3084\u3055\u305a\u306b\u6e08\u307f\u307e\u3059\u3002<\/p>\n<hr>\n<h2>Objects::nonNull\u3067null\u8981\u7d20\u3092\u9664\u5916\u3059\u308b<\/h2>\n<p>List\u306e\u4e2d\u306bnull\u8981\u7d20\u304c\u6df7\u3058\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u51e6\u7406\u306e\u65e9\u3044\u6bb5\u968e\u3067filter\u3057\u3066\u304a\u304f\u3068\u3001\u5f8c\u7d9a\u306emap\u3084method reference\u3078null\u3092\u6e21\u3055\u305a\u306b\u6e08\u307f\u307e\u3059\u3002<\/p>\n<pre><code>import java.util.Arrays;\r\nimport java.util.List;\r\nimport java.util.Objects;\r\n\r\nList&lt;String&gt; raw = Arrays.asList(&quot;Alice&quot;, null, &quot;Bob&quot;);\r\n\r\nList&lt;String&gt; names = raw.stream()\r\n    .filter(Objects::nonNull)\r\n    .toList();\r\n\r\nSystem.out.println(names); \/\/ [Alice, Bob]<\/code><\/pre>\n<p>`Objects::nonNull`\u306f\u53d7\u3051\u53d6\u3063\u305f\u53c2\u7167\u304cnull\u3067\u306a\u3051\u308c\u3070true\u3092\u8fd4\u3057\u307e\u3059\u3002filter\u306fPredicate\u304ctrue\u306b\u306a\u3063\u305f\u8981\u7d20\u3060\u3051\u3092\u6b8b\u3059\u305f\u3081\u3001null\u8981\u7d20\u3060\u3051\u3092\u9664\u5916\u3067\u304d\u307e\u3059\u3002<\/p>\n<hr>\n<h2>Objects::nonNull\u3068x -&gt; x != null\u306f\u3069\u3046\u9055\u3046\uff1f<\/h2>\n<p>null\u9664\u5916\u3068\u3044\u3046\u76ee\u7684\u3067\u306f\u3001`.filter(Objects::nonNull)`\u3068`.filter(x -&gt; x != null)`\u306f\u540c\u3058\u5224\u5b9a\u3092\u8868\u3057\u307e\u3059\u3002\u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u306e\u65b9\u304c\u300cnull\u3092\u9664\u5916\u3059\u308b\u300d\u3068\u3044\u3046\u610f\u56f3\u3092\u77ed\u304f\u8aad\u3081\u308b\u305f\u3081\u4fbf\u5229\u3067\u3059\u304c\u3001\u6319\u52d5\u304c\u7279\u5225\u306b\u5f37\u5316\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<pre><code>raw.stream()\r\n    .filter(Objects::nonNull)\r\n    .toList();\r\n\r\nraw.stream()\r\n    .filter(x -&gt; x != null)\r\n    .toList();<\/code><\/pre>\n<p>\u8907\u5408\u6761\u4ef6\u307e\u3067\u78ba\u8a8d\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u65b9\u304c\u8aad\u307f\u3084\u3059\u3044\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002\u66f8\u304d\u65b9\u3067\u306f\u306a\u304f\u3001\u3069\u306e\u6bb5\u968e\u3067null\u3092\u8a31\u5bb9\u3057\u3001\u3069\u3053\u304b\u3089\u5148\u3067\u306f\u8a31\u5bb9\u3057\u306a\u3044\u304b\u3092\u6c7a\u3081\u308b\u65b9\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<hr>\n<h2>List\u81ea\u4f53\u304cnull\u306a\u3089filter\u3067\u306f\u9632\u3052\u306a\u3044<\/h2>\n<p>`items`\u305d\u306e\u3082\u306e\u304cnull\u306a\u3089\u3001`items.stream()`\u3092\u547c\u3093\u3060\u6642\u70b9\u3067\u4f8b\u5916\u306b\u306a\u308a\u3001filter\u306b\u306f\u5230\u9054\u3057\u307e\u305b\u3093\u3002\u3053\u306e\u30b1\u30fc\u30b9\u306fStream\u8981\u7d20\u306enull\u5bfe\u7b56\u3068\u306f\u5206\u3051\u3066\u8003\u3048\u307e\u3059\u3002<\/p>\n<pre><code>import java.util.Collections;\r\nimport java.util.List;\r\nimport java.util.Objects;\r\n\r\nList&lt;String&gt; safeItems = items == null\r\n    ? Collections.emptyList()\r\n    : items;\r\n\r\nList&lt;String&gt; result = safeItems.stream()\r\n    .filter(Objects::nonNull)\r\n    .toList();<\/code><\/pre>\n<p>\u5883\u754c\u3067null\u3092\u53d7\u3051\u53d6\u308b\u3053\u3068\u81ea\u4f53\u304c\u60f3\u5b9a\u5916\u306a\u3089\u3001\u7a7aList\u3078\u5909\u63db\u3059\u308b\u3088\u308a\u5165\u529b\u6642\u70b9\u3067fail-fast\u306b\u3059\u308b\u8a2d\u8a08\u3082\u3042\u308a\u307e\u3059\u3002\u7a7a\u3068\u3057\u3066\u6271\u3046\u304b\u7570\u5e38\u3068\u3057\u3066\u6271\u3046\u304b\u306f\u3001\u696d\u52d9\u4e0a\u306e\u610f\u5473\u306b\u5408\u308f\u305b\u3066\u6c7a\u3081\u307e\u3059\u3002<\/p>\n<h2>map\u306e\u5f8c\u306bnull\u304c\u751f\u307e\u308c\u308b\u5834\u5408\u306f\u5909\u63db\u5f8c\u306b\u3082\u78ba\u8a8d\u3059\u308b<\/h2>\n<p>\u5143\u306e\u8981\u7d20\u304c\u975enull\u3067\u3082\u3001getter\u3084\u5909\u63db\u51e6\u7406\u306e\u7d50\u679c\u304cnull\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u5834\u5408\u3001\u6700\u521d\u306efilter\u3060\u3051\u3067\u306f\u5f8c\u7d9a\u51e6\u7406\u306enull\u3092\u9632\u3052\u307e\u305b\u3093\u3002<\/p>\n<pre><code>List&lt;String&gt; emails = users.stream()\r\n    .filter(Objects::nonNull)\r\n    .map(User::getEmail)\r\n    .filter(Objects::nonNull)\r\n    .toList();<\/code><\/pre>\n<p>\u305f\u3060\u3057\u3001map\u5f8c\u306enull\u306b\u696d\u52d9\u4e0a\u306e\u610f\u5473\u304c\u3042\u308b\u306a\u3089\u3001\u4f55\u3067\u3082\u9664\u5916\u3059\u308b\u3068\u60c5\u5831\u304c\u5931\u308f\u308c\u307e\u3059\u3002\u300c\u30e1\u30fc\u30eb\u672a\u767b\u9332\u3092\u6368\u3066\u3066\u3088\u3044\u306e\u304b\u300d\u3092\u78ba\u8a8d\u3057\u3001\u5fc5\u8981\u306a\u3089Optional\u3084\u5225\u306e\u72b6\u614b\u8868\u73fe\u3092\u691c\u8a0e\u3057\u307e\u3059\u3002<\/p>\n<h2>\u5358\u4e00\u306enullable\u5024\u306a\u3089Stream.ofNullable\u3082\u4f7f\u3048\u308b<\/h2>\n<p>Java 9\u4ee5\u964d\u306e`Stream.ofNullable`\u306f\u3001\u5024\u304c\u975enull\u306a\u30891\u8981\u7d20\u306eStream\u3001null\u306a\u3089\u7a7aStream\u3092\u8fd4\u3057\u307e\u3059\u3002\u5358\u4e00\u5024\u3092Stream\u51e6\u7406\u3078\u3064\u306a\u3052\u305f\u3044\u3068\u304d\u306b\u3001null\u5224\u5b9a\u3092\u5916\u5074\u3078\u5897\u3084\u3055\u305a\u66f8\u3051\u307e\u3059\u3002<\/p>\n<pre><code>import java.util.stream.Stream;\r\n\r\nList&lt;String&gt; normalized = Stream.ofNullable(email)\r\n    .map(String::trim)\r\n    .filter(s -&gt; !s.isEmpty())\r\n    .toList();<\/code><\/pre>\n<p>\u8907\u6570\u8981\u7d20\u306eList\u304b\u3089null\u3092\u843d\u3068\u3059\u7528\u9014\u306f`filter(Objects::nonNull)`\u3001\u5358\u4e00\u306enullable\u5024\u30920\u4ef6\u307e\u305f\u306f1\u4ef6\u306eStream\u3078\u5909\u63db\u3059\u308b\u7528\u9014\u306f`Stream.ofNullable`\u3068\u8003\u3048\u308b\u3068\u4f7f\u3044\u5206\u3051\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>findFirst\u30fbfindAny\u306e\u524d\u306bnull\u3092\u6b8b\u3055\u306a\u3044<\/h2>\n<p>Oracle\u306eStream API\u3067\u306f\u3001`findFirst()`\u3068`findAny()`\u306f\u9078\u629e\u3055\u308c\u305f\u8981\u7d20\u304cnull\u306e\u5834\u5408\u306b`NullPointerException`\u3092\u9001\u51fa\u3059\u308b\u3068\u660e\u8a18\u3055\u308c\u3066\u3044\u307e\u3059\u3002null\u304c\u6df7\u3058\u308b\u53ef\u80fd\u6027\u306e\u3042\u308bStream\u3067\u306f\u3001\u691c\u7d22\u524d\u306b\u9664\u5916\u3057\u307e\u3059\u3002<\/p>\n<pre><code>String first = raw.stream()\r\n    .filter(Objects::nonNull)\r\n    .findFirst()\r\n    .orElse(&quot;\u672a\u8a2d\u5b9a&quot;);<\/code><\/pre>\n<p>\u300cOptional\u3067\u8fd4\u308b\u304b\u3089null\u3082\u5b89\u5168\u306b\u5305\u307e\u308c\u308b\u300d\u3068\u306f\u9650\u308a\u307e\u305b\u3093\u3002Optional\u3092\u8fd4\u3059\u7d42\u7aef\u64cd\u4f5c\u3067\u3082\u3001API\u3054\u3068\u306enull\u5951\u7d04\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u5927\u5207\u3067\u3059\u3002<\/p>\n<h2>\u5b9f\u52d9\u3067\u306fnull\u3092\u6d88\u3059\u524d\u306b\u610f\u5473\u3092\u78ba\u8a8d\u3059\u308b<\/h2>\n<ul>\n<li>null\u8981\u7d20\u304c\u5358\u306a\u308b\u6b20\u640d\u3067\u3001\u51e6\u7406\u5bfe\u8c61\u5916\u306b\u3057\u3066\u3088\u3044\u306a\u3089filter\u3067\u9664\u5916\u3059\u308b<\/li>\n<li>List\u81ea\u4f53\u306enull\u306fstream()\u524d\u306b\u6271\u3046<\/li>\n<li>map\u5f8c\u306bnull\u304c\u751f\u307e\u308c\u308b\u306a\u3089\u5909\u63db\u5f8c\u306e\u5951\u7d04\u3082\u78ba\u8a8d\u3059\u308b<\/li>\n<li>\u5358\u4e00\u5024\u3092Stream\u3078\u3064\u306a\u3050\u306a\u3089Stream.ofNullable\u3092\u691c\u8a0e\u3059\u308b<\/li>\n<li>null\u304c\u30a8\u30e9\u30fc\u72b6\u614b\u3092\u8868\u3059\u306a\u3089\u3001\u9ed9\u3063\u3066\u9664\u5916\u305b\u305a\u5165\u529b\u691c\u8a3c\u3084\u4f8b\u5916\u3092\u4f7f\u3046<\/li>\n<\/ul>\n<p>\uff08Stream\u4ee5\u5916\u3082\u542b\u3081\u305fNullPointerException\u306e\u539f\u56e0\u3092\u6574\u7406\u3057\u305f\u3044\u5834\u5408\u306b\u3064\u3044\u3066\u306f\u300e<a href=\"https:\/\/route-zero.com\/recruit\/route\/1624\/\">Spring Boot NullPointerException\u5b8c\u5168\u5bfe\u7b56\uff5c3\u5927\u539f\u56e0\u3068\u5b9f\u88c5\u4f8b\u307e\u3068\u3081<\/a>\u300f\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\uff09<\/p>\n<p>null\u3092\u9664\u5916\u3067\u304d\u308b\u3053\u3068\u3068\u3001null\u3092\u9664\u5916\u3057\u3066\u3088\u3044\u3053\u3068\u306f\u5225\u3067\u3059\u3002\u30c7\u30fc\u30bf\u6b20\u640d\u3092\u7121\u8996\u3057\u3066\u3088\u3044\u51e6\u7406\u306a\u306e\u304b\u3001\u7570\u5e38\u3068\u3057\u3066\u691c\u77e5\u3059\u3079\u304d\u51e6\u7406\u306a\u306e\u304b\u3092\u5148\u306b\u6c7a\u3081\u308b\u3068\u3001Stream\u306e\u30b3\u30fc\u30c9\u3082\u8aad\u307f\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>\u3088\u304f\u3042\u308b\u8cea\u554f<\/h2>\n<h3>Objects::nonNull\u306f\u30e9\u30e0\u30c0\u5f0f\u3088\u308a\u5b89\u5168\u3067\u3059\u304b\uff1f<\/h3>\n<p>null\u5224\u5b9a\u305d\u306e\u3082\u306e\u306f\u540c\u7b49\u3067\u3059\u3002`Objects::nonNull`\u306f`filter`\u7528Predicate\u3068\u3057\u3066\u610f\u56f3\u304c\u8aad\u307f\u53d6\u308a\u3084\u3059\u3044\u66f8\u304d\u65b9\u3067\u3059\u3002<\/p>\n<h3>filter(Objects::nonNull)\u3092\u66f8\u3051\u3070NullPointerException\u306f\u3059\u3079\u3066\u9632\u3052\u307e\u3059\u304b\uff1f<\/h3>\n<p>\u9632\u3052\u307e\u305b\u3093\u3002\u5143\u306eList\u81ea\u4f53\u304cnull\u306a\u3089stream()\u3067\u4f8b\u5916\u306b\u306a\u308a\u307e\u3059\u3057\u3001filter\u5f8c\u306emap\u51e6\u7406\u304c\u5225\u306enull\u3092\u8fd4\u3059\u5834\u5408\u3082\u3042\u308a\u307e\u3059\u3002null\u304c\u3069\u306e\u6bb5\u968e\u306b\u3042\u308b\u304b\u3092\u5207\u308a\u5206\u3051\u307e\u3059\u3002<\/p>\n<h3>Stream.ofNullable\u306f\u3044\u3064\u4f7f\u3044\u307e\u3059\u304b\uff1f<\/h3>\n<p>\u5358\u4e00\u306e\u5024\u304cnull\u304b\u3082\u3057\u308c\u305a\u3001\u305d\u308c\u30920\u4ef6\u307e\u305f\u306f1\u4ef6\u306eStream\u3068\u3057\u3066\u5f8c\u7d9a\u51e6\u7406\u3078\u3064\u306a\u304e\u305f\u3044\u5834\u5408\u306b\u4fbf\u5229\u3067\u3059\u3002Java 9\u304b\u3089\u5229\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u73fe\u5728\u306eStream\u51e6\u7406\u3067\u3001null\u304c\u300c\u5143\u306eList\u300d\u300c\u8981\u7d20\u300d\u300cmap\u5f8c\u306e\u5024\u300d\u306e\u3069\u3053\u306b\u5165\u308a\u5f97\u308b\u304b\u30921\u3064\u305a\u3064\u78ba\u8a8d\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n","protected":false},"featured_media":6416,"template":"","meta":{"ssp_meta_title":"Java Stream\u306enull\u9664\u5916\uff5cObjects::nonNull\u3068NPE\u5bfe\u7b56","ssp_meta_description":"Java Stream\u3067null\u8981\u7d20\u3092\u9664\u5916\u3059\u308b\u65b9\u6cd5\u3092\u3001Objects::nonNull\u3068\u30e9\u30e0\u30c0\u5f0f\u306e\u9055\u3044\u3001null\u306eList\u3001map\u5f8c\u306enull\u3001Stream.ofNullable\u3001findFirst\u306e\u6ce8\u610f\u70b9\u307e\u3067\u5b9f\u4f8b\u3067\u89e3\u8aac\u3057\u307e\u3059\u3002","ssp_meta_keyword":"Java Stream null,Objects::nonNull,Java Stream filter null,Java NullPointerException,Stream.ofNullable,Java Stream map null,Java Objects nonNull","ssp_meta_canonical":""},"route_category":[9],"_links":{"self":[{"href":"https:\/\/route-zero.com\/recruit\/wp-json\/wp\/v2\/route\/6412"}],"collection":[{"href":"https:\/\/route-zero.com\/recruit\/wp-json\/wp\/v2\/route"}],"about":[{"href":"https:\/\/route-zero.com\/recruit\/wp-json\/wp\/v2\/types\/route"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/route-zero.com\/recruit\/wp-json\/wp\/v2\/media\/6416"}],"wp:attachment":[{"href":"https:\/\/route-zero.com\/recruit\/wp-json\/wp\/v2\/media?parent=6412"}],"wp:term":[{"taxonomy":"route_category","embeddable":true,"href":"https:\/\/route-zero.com\/recruit\/wp-json\/wp\/v2\/route_category?post=6412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}