{"id":1929,"date":"2023-10-04T12:54:15","date_gmt":"2023-10-04T12:54:15","guid":{"rendered":"https:\/\/datmt.com\/?p=1929"},"modified":"2023-10-08T01:23:12","modified_gmt":"2023-10-08T01:23:12","slug":"java-biconsumer-functional-interface-tutorial","status":"publish","type":"post","link":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/","title":{"rendered":"Java BiConsumer Functional Interface Tutorial"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>The BiConsumer is a part of the <code>java.util.function<\/code> package. As the name suggest, this interface is a Consumer. That means it takes input arguments and returns void. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Practical use cases <\/h2>\n\n\n\n<p>This interface can be useful in various cases, for example, it can be used to create side effects like modifying state, printing, or logging.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BiConsumer Examples<\/h2>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-java&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;Java&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;java&quot;}\">BiConsumer&lt;String, Integer&gt; printKeyValue = (key, value) -&gt; {\n   System.out.println(key + &quot;: &quot; + value);\n};\n\nprintKeyValue.accept(&quot;Alice&quot;, 1000);\n\n<\/pre><\/div>\n\n\n\n<p>Here, I created a BiConsumer and provided the implementation method to the abstract method named <code>accept<\/code>.<\/p>\n\n\n\n<p>Using the consumer is quite straightforward:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"250\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" src=\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image.png\" alt=\"\" class=\"wp-image-1930\" srcset=\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image.png 726w, https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image-300x103.png 300w\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Using BiConsumer in stream<\/h2>\n\n\n\n<p>Using the BiConsumer above, let&#8217;s see how you can use it in a stream:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-java&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;Java&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;java&quot;}\">    public static void main(String[] args) {\n\n        BiConsumer&lt;String, Integer&gt; printKeyValue = (key, value) -&gt; {\n            System.out.println(key + &quot;: &quot; + value);\n        };\n        var cities = List.of(&quot;Hanoi&quot;, &quot;New York&quot;, &quot;Canberra&quot;);\n\n        cities.forEach((t -&gt; printKeyValue.accept(t, t.length())));\n\n    }<\/pre><\/div>\n\n\n\n<p>The function above print the name of the cities and their length.<\/p>\n\n\n\n<p>You can also write methods that has a BiConsumer as a paramenter.<\/p>\n\n\n\n<p>Consider you are building a system that log users&#8217; login activities with the following data model:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-java&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;Java&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;java&quot;}\"> record UserLoginReport(String name, int count, LocalDateTime lastLoggedIn);\n<\/pre><\/div>\n\n\n\n<p>You can create BiConsumer to log the activities as below:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-java&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;Java&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;java&quot;}\">    private static void reportLoginCount(UserLoginReport user, BiConsumer&lt;String, Integer&gt; loginCountConsumer) {\n       loginCountConsumer.accept(user.name(), user.count()); \n    }\n    private static void reportLoginTime(UserLoginReport user, BiConsumer&lt;String, LocalDateTime&gt; loginTimeConsumer) {\n        loginTimeConsumer.accept(user.name(), user.lastLoggedIn());\n    }<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Now you can either create the consumers and pass into the methods or you can use lambda expressions for brevity (and coolness \ud83d\ude0e)<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-java&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;Java&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;java&quot;}\">    public static void main(String[] args) {\n        \/\/create 3 records\n        var loginReport = List.of(\n                new UserLoginReport(&quot;Alice&quot;, 10, LocalDateTime.now().minusDays(1)),\n                new UserLoginReport(&quot;Bob&quot;, 20, LocalDateTime.now().minusHours(2)),\n                new UserLoginReport(&quot;Charlie&quot;, 30, LocalDateTime.now()));\n        \n        \/\/report login count\n        loginReport.forEach(user -&gt; reportLoginCount(user, (name, count) -&gt; System.out.println(name + &quot; logged in &quot; + count + &quot; times&quot;)));\n        \n        \/\/report login time\n        loginReport.forEach(user -&gt; reportLoginTime(user, (name, time) -&gt; System.out.println(name + &quot; logged in at &quot; + time)));\n    }<\/pre><\/div>\n\n\n\n<p>The result would be like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"435\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image-1-1024x435.png\" alt=\"Using BiConsumer for logging\" class=\"wp-image-1931\" srcset=\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image-1-1024x435.png 1024w, https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image-1-300x127.png 300w, https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image-1-768x326.png 768w, https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/image-1.png 1112w\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>In this post, I&#8217;ve shown you how to use BiConsumer in Java. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview The BiConsumer is a part of the java.util.function package. As the name suggest, this interface is a Consumer. That means it takes input arguments and returns void. Practical use cases This interface can be useful in various cases, for example, it can be used to create side effects like modifying state, printing, or logging. &#8230; <a title=\"Java BiConsumer Functional Interface Tutorial\" class=\"read-more\" href=\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\" aria-label=\"Read more about Java BiConsumer Functional Interface Tutorial\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1973,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1,4],"tags":[],"class_list":["post-1929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backend","category-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java BiConsumer Functional Interface Tutorial - datmt<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java BiConsumer Functional Interface Tutorial - datmt\" \/>\n<meta property=\"og:description\" content=\"Overview The BiConsumer is a part of the java.util.function package. As the name suggest, this interface is a Consumer. That means it takes input arguments and returns void. Practical use cases This interface can be useful in various cases, for example, it can be used to create side effects like modifying state, printing, or logging. ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"datmt\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-04T12:54:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-08T01:23:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u0110\u1ea1t Tr\u1ea7n\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0110\u1ea1t Tr\u1ea7n\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\"},\"author\":{\"name\":\"\u0110\u1ea1t Tr\u1ea7n\",\"@id\":\"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e\"},\"headline\":\"Java BiConsumer Functional Interface Tutorial\",\"datePublished\":\"2023-10-04T12:54:15+00:00\",\"dateModified\":\"2023-10-08T01:23:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\"},\"wordCount\":193,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e\"},\"image\":{\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg\",\"articleSection\":[\"backend\",\"java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\",\"url\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\",\"name\":\"Java BiConsumer Functional Interface Tutorial - datmt\",\"isPartOf\":{\"@id\":\"https:\/\/datmt.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg\",\"datePublished\":\"2023-10-04T12:54:15+00:00\",\"dateModified\":\"2023-10-08T01:23:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage\",\"url\":\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg\",\"contentUrl\":\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/datmt.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java BiConsumer Functional Interface Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/datmt.com\/#website\",\"url\":\"https:\/\/datmt.com\/\",\"name\":\"datmt\",\"description\":\"Hands on projects\",\"publisher\":{\"@id\":\"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/datmt.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e\",\"name\":\"\u0110\u1ea1t Tr\u1ea7n\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/datmt.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/03\/cropped-profile.jpg\",\"contentUrl\":\"https:\/\/datmt.com\/wp-content\/uploads\/2023\/03\/cropped-profile.jpg\",\"width\":512,\"height\":512,\"caption\":\"\u0110\u1ea1t Tr\u1ea7n\"},\"logo\":{\"@id\":\"https:\/\/datmt.com\/#\/schema\/person\/image\/\"},\"description\":\"I build softwares that solve problems. I also love writing\/documenting things I learn\/want to learn.\",\"sameAs\":[\"https:\/\/datmt.com\"],\"url\":\"https:\/\/datmt.com\/author\/mtdat171_c\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java BiConsumer Functional Interface Tutorial - datmt","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Java BiConsumer Functional Interface Tutorial - datmt","og_description":"Overview The BiConsumer is a part of the java.util.function package. As the name suggest, this interface is a Consumer. That means it takes input arguments and returns void. Practical use cases This interface can be useful in various cases, for example, it can be used to create side effects like modifying state, printing, or logging. ... Read more","og_url":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/","og_site_name":"datmt","article_published_time":"2023-10-04T12:54:15+00:00","article_modified_time":"2023-10-08T01:23:12+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg","type":"image\/jpeg"}],"author":"\u0110\u1ea1t Tr\u1ea7n","twitter_card":"summary_large_image","twitter_misc":{"Written by":"\u0110\u1ea1t Tr\u1ea7n","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#article","isPartOf":{"@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/"},"author":{"name":"\u0110\u1ea1t Tr\u1ea7n","@id":"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e"},"headline":"Java BiConsumer Functional Interface Tutorial","datePublished":"2023-10-04T12:54:15+00:00","dateModified":"2023-10-08T01:23:12+00:00","mainEntityOfPage":{"@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/"},"wordCount":193,"commentCount":0,"publisher":{"@id":"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e"},"image":{"@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg","articleSection":["backend","java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/","url":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/","name":"Java BiConsumer Functional Interface Tutorial - datmt","isPartOf":{"@id":"https:\/\/datmt.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg","datePublished":"2023-10-04T12:54:15+00:00","dateModified":"2023-10-08T01:23:12+00:00","breadcrumb":{"@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#primaryimage","url":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg","contentUrl":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/10\/datmt-java-thumbnail.jpg-bc-at-1929.jpg","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/datmt.com\/backend\/java-biconsumer-functional-interface-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/datmt.com\/"},{"@type":"ListItem","position":2,"name":"Java BiConsumer Functional Interface Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/datmt.com\/#website","url":"https:\/\/datmt.com\/","name":"datmt","description":"Hands on projects","publisher":{"@id":"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/datmt.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/datmt.com\/#\/schema\/person\/7736566e3758f424a11fd53f581c4b5e","name":"\u0110\u1ea1t Tr\u1ea7n","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/datmt.com\/#\/schema\/person\/image\/","url":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/03\/cropped-profile.jpg","contentUrl":"https:\/\/datmt.com\/wp-content\/uploads\/2023\/03\/cropped-profile.jpg","width":512,"height":512,"caption":"\u0110\u1ea1t Tr\u1ea7n"},"logo":{"@id":"https:\/\/datmt.com\/#\/schema\/person\/image\/"},"description":"I build softwares that solve problems. I also love writing\/documenting things I learn\/want to learn.","sameAs":["https:\/\/datmt.com"],"url":"https:\/\/datmt.com\/author\/mtdat171_c\/"}]}},"_links":{"self":[{"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/posts\/1929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/comments?post=1929"}],"version-history":[{"count":1,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/posts\/1929\/revisions"}],"predecessor-version":[{"id":1933,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/posts\/1929\/revisions\/1933"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/media\/1973"}],"wp:attachment":[{"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/media?parent=1929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/categories?post=1929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datmt.com\/wp-json\/wp\/v2\/tags?post=1929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}