{"id":1473,"date":"2022-11-05T17:13:45","date_gmt":"2022-11-05T09:13:45","guid":{"rendered":"https:\/\/qaqaq.top\/?p=1473"},"modified":"2022-11-27T12:39:43","modified_gmt":"2022-11-27T04:39:43","slug":"java11%e6%96%b0%e7%89%b9%e6%80%a7%ef%bc%9astring%e6%96%b0%e5%a2%9e%e7%9a%84%e6%96%b9%e6%b3%95%e3%80%81optional%e6%96%b0%e5%a2%9e%e7%9a%84%e6%96%b9%e6%b3%95%e3%80%81%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=1473","title":{"rendered":"java11\u65b0\u7279\u6027\uff1aString\u65b0\u589e\u7684\u65b9\u6cd5\u3001Optional\u65b0\u589e\u7684\u65b9\u6cd5\u3001\u5c40\u90e8\u53d8\u91cf\u7c7b\u578b\u63a8\u65ad\u7684\u5347\u7ea7\u3001HttpClient"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>package top.qaqaq.java.P711;\r\n\r\nimport org.junit.jupiter.api.Test;\r\n\r\nimport java.io.IOException;\r\nimport java.net.URI;\r\nimport java.net.http.HttpClient;\r\nimport java.net.http.HttpRequest;\r\nimport java.net.http.HttpResponse;\r\nimport java.util.Optional;\r\nimport java.util.concurrent.CompletableFuture;\r\n\r\n\/**\r\n * @author RichieZhang\r\n * @create 2022-11-05 \u4e0b\u5348 3:48\r\n *\/\r\npublic class Java11Test {\r\n\r\n    \/\/java 11\u65b0\u7279\u6027\u4e00\uff1aString\u4e2d\u65b0\u589e\u7684\u65b9\u6cd5\r\n    @Test\r\n    public void test1(){\r\n\/\/        isBlank(): \u5224\u65ad\u5b57\u7b26\u4e32\u662f\u5426\u4e3a\u7a7a\u767d\r\n        System.out.println(\"  \\t  \\t  \\n  \".isBlank());\r\n\r\n\/\/        strip(): \u53bb\u9664\u9996\u5c3e\u7a7a\u767d\r\n        System.out.println(\"-----\" + \"  \\t abc \\t  \\n  \".strip() + \"------\");\r\n        System.out.println(\"-----\" + \"  \\t abc \\t  \\n  \".trim() + \"------\");\r\n\r\n\/\/        stripTrailing(): \u53bb\u9664\u5c3e\u90e8\u7a7a\u683c\r\n        System.out.println(\"-----\" + \"  \\t abc \\t  \\n  \".stripTrailing() + \"------\");\r\n\r\n\/\/        stripLeading(): \u53bb\u9664\u9996\u90e8\u7a7a\u683c\r\n        System.out.println(\"-----\" + \"  \\t abc \\t  \\n  \".stripLeading() + \"------\");\r\n\r\n\/\/        repeat(int count): \u590d\u5236\u5b57\u7b26\u4e32\r\n        String str1 = \"abc\";\r\n        String str2 = str1.repeat(5);\r\n        System.out.println(str2);\r\n\r\n\/\/        lines().count(): \u884c\u6570\u7edf\u8ba1\r\n        String str3 = \"abc\\ndef\\ng\";\r\n        System.out.println(str3.lines().count());\r\n    }\r\n\r\n    \/\/java11\u65b0\u7279\u6027\u4e8c\uff1aOptional\u65b0\u589e\u7684\u65b9\u6cd5\r\n    @Test\r\n    public void test2(){\r\n\r\n        var op = Optional.empty();\r\n        System.out.println(op.isPresent());\/\/\u5224\u65ad\u5185\u90e8\u7684value\u662f\u5426\u5b58\u5728\r\n        System.out.println(op.isEmpty());\/\/\u5224\u65ad\u5185\u90e8\u7684value\u662f\u5426\u4e3a\u7a7a\r\n\r\n        op = Optional.of(\"abc\");\r\n        \/\/orElseThrow(): value\u975e\u7a7a\uff0c\u8fd4\u56devalue\uff1b\u5426\u5219\u629b\u5f02\u5e38 NoSuchElementException\r\n        var obj = op.orElseThrow();\r\n        System.out.println(obj);\r\n\r\n        Optional&lt;String> op1 = Optional.of(\"hello\");\r\n        op = Optional.empty();\r\n        \/\/or: value\u975e\u7a7a\uff0c\u8fd4\u56de\u5bf9\u5e94\u7684Optional\uff1bvalue\u4e3a\u7a7a\uff0c\u8fd4\u56de\u5f62\u53c2\u5c01\u88c5\u7684Optional\r\n        Optional&lt;Object> op2 = op.or(() -> op1);\r\n        System.out.println(op2);\r\n    }\r\n\r\n    \/\/java11\u65b0\u7279\u6027\u4e09\uff1a\u5c40\u90e8\u53d8\u91cf\u7c7b\u578b\u63a8\u65ad\u7684\u5347\u7ea7\r\n    @Test\r\n    public void test3(){\r\n        \/\/\u9519\u8bef\u7684\u5f62\u5f0f: \u5fc5\u987b\u8981\u6709\u7c7b\u578b, \u53ef\u4ee5\u52a0\u4e0avar\r\n\/\/        Consumer&lt;String> con1 = (@Deprecated t) ->System.out.println(t.toUpperCase());\r\n        \/\/\u6b63\u786e\u7684\u5f62\u5f0f:\r\n        \/\/\u4f7f\u7528var\u7684\u597d\u5904\u662f\u5728\u4f7f\u7528lambda\u8868\u8fbe\u5f0f\u65f6\u7ed9\u53c2\u6570\u52a0\u4e0a\u6ce8\u89e3\u3002\r\n\/\/        Consumer&lt;String> con2 = (@Deprecated var t) -> System.out.println(t.toUpperCase());\r\n    }\r\n\r\n    \/\/java11\u65b0\u7279\u6027\u56db\uff1ahttpClient\u66ff\u6362\u539f\u6709\u7684HttpURLConnection\u3002\r\n    @Test\r\n    public void test4(){\r\n        try {\r\n            HttpClient client = HttpClient.newHttpClient();\r\n            HttpRequest request = HttpRequest.newBuilder(URI.create(\"http:\/\/127.0.0.1:8080\/test\/\")).build();\r\n            HttpResponse.BodyHandler&lt;String> responseBodyHandler = HttpResponse.BodyHandlers.ofString();\r\n            HttpResponse&lt;String> response = client.send(request, responseBodyHandler);\r\n            String body = response.body();\r\n            System.out.println(body);\r\n        } catch (IOException e) {\r\n            e.printStackTrace();\r\n        } catch (InterruptedException e) {\r\n            e.printStackTrace();\r\n        }\r\n    }\r\n\r\n    @Test\r\n    public void test5(){\r\n        HttpClient client = HttpClient.newHttpClient();\r\n        HttpRequest request = HttpRequest.newBuilder(URI.create(\"http:\/\/127.0.0.1:8080\/test\/\")).build();\r\n        HttpResponse.BodyHandler&lt;String> responseBodyHandler = HttpResponse.BodyHandlers.ofString();\r\n        CompletableFuture&lt;HttpResponse&lt;String>> sendAsync = client.sendAsync(request, responseBodyHandler);\r\n        sendAsync.thenApply(t -> t.body()).thenAccept(System.out::println);\r\n        \/\/HttpResponse&lt;String> response = sendAsync.get();\r\n        \/\/String body = response.body();\r\n        \/\/System.out.println(body);\r\n    }\r\n}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[46],"class_list":["post-1473","post","type-post","status-publish","format-standard","hentry","category-java-code","tag-java"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1473"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1473"}],"version-history":[{"count":1,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1473\/revisions"}],"predecessor-version":[{"id":1474,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/1473\/revisions\/1474"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}