{"id":458,"date":"2020-06-02T17:46:50","date_gmt":"2020-06-02T15:46:50","guid":{"rendered":"https:\/\/arasoftware.pl\/?p=458"},"modified":"2021-10-21T10:34:08","modified_gmt":"2021-10-21T08:34:08","slug":"lombok-mniej-kodu-a-ten-sam-efekt","status":"publish","type":"post","link":"https:\/\/arasoftware.pl\/en\/lombok-mniej-kodu-a-ten-sam-efekt\/","title":{"rendered":"Lombok &#8211; mniej kodu a ten sam efekt!"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Czas czytania: <\/span> <span class=\"rt-time\">4<\/span> <span class=\"rt-label rt-postfix\">minut<\/span><\/span><p class=\"wp-block-paragraph\">Problem konieczno&#347;ci pisania tego samego kodu przy deklaracji nowej klasy, konfigurowaniu projektu czy te&#380; wy&#322;apywaniu wyj&#261;tk&oacute;w prze&#347;ladowa&#322; programist&oacute;w JAVA od samego pocz&#261;tku. Ilo&#347;&#263; czasu, jak&#261; trzeba po&#347;wi&#281;ci&#263; na pisanie getter&oacute;w, seter&oacute;w, metod equals i hashcode czy te&#380; tworzenie r&oacute;&#380;nych wariant&oacute;w konstruktor&oacute;w jest niewsp&oacute;&#322;miernie du&#380;a do korzy&#347;ci z tego wynikaj&#261;cych. Mo&#380;e jednak da si&#281; unikn&#261;&#263; tej &#8222;ma&#322;piej roboty&#8221;? <\/p>\n\n\n<h3 class=\"wp-block-heading wp-block-heading\" id=\"co-to-jest-lombok\">\n<br>Co to jest Lombok?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Nie, nie chodzi tu o indonezyjsk&#261; wysp&#281;, kt&oacute;ra notabene le&#380;y niedaleko wyspy JAWA. Jest to jednak biblioteka, kt&oacute;ra ma za zadane znacz&#261;co skraca&#263; kod pisany w j&#281;zyku JAVA. C&oacute;&#380; za zbie&#380;no&#347;&#263; nazw \ud83d\ude42 <strong>Projekt Lombok to darmowe narz&#281;dzie do generowania najcz&#281;&#347;ciej powtarzaj&#261;cego si&#281; kodu. Za pomoc&#261; adnotacji jeste&#347;my w stanie znacz&#261;co zmniejszy&#263; ilo&#347;&#263; linii kodu nie wp&#322;ywaj&#261;c tym samym na jego u&#380;yteczno&#347;&#263;. <\/strong>Dodatkowo wszystko to dziej&#281; si&#281; podczas budowania projektu. Generowanie kodu podczas budowania aplikacji ma jedn&#261; bardzo du&#380;&#261; zalet&#281;. Podczas implementacji nie widzimy kodu, kt&oacute;ry i tak zawsze wygl&#261;da tak samo. Wp&#322;ywa to na popraw&#281; czytelno&#347;ci oraz pozwala si&#281; skupi&#263; bardziej na implementowaniu logiki biznesowej. <\/p>\n\n\n<p class=\"wp-block-paragraph\">Zobacz jak doda&#263; Lombok to Twojego projektu oraz jak wykorzysta&#263; najcz&#281;&#347;ciej u&#380;ywane adnotacje.<\/p>\n\n\n<h3 class=\"wp-block-heading wp-block-heading\" id=\"jak-dodac487-lombok-do-projektu\">\n<br>Jak doda&#263; Lombok do projektu?<\/h3>\n\n\n<h4 class=\"wp-block-heading wp-block-heading\" id=\"maven\">Maven<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"xml\" class=\"language-xml line-numbers\">&lt;dependencies>\n\t&lt;dependency>\n\t\t&lt;groupId>org.projectlombok&lt;\/groupId>\n\t\t&lt;artifactId>lombok&lt;\/artifactId>\n\t\t&lt;version>1.18.12&lt;\/version>\n\t\t&lt;scope>provided&lt;\/scope>\n\t&lt;\/dependency>\n&lt;\/dependencies><\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<h4 class=\"wp-block-heading wp-block-heading\" id=\"gradle\">Gradle<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"kotlin\" class=\"language-kotlin line-numbers\">repositories {\n\tmavenCentral()\n}\n\ndependencies {\n\tcompileOnly 'org.projectlombok:lombok:1.18.12'\n\tannotationProcessor 'org.projectlombok:lombok:1.18.12'\n\t\n\ttestCompileOnly 'org.projectlombok:lombok:1.18.12'\n\ttestAnnotationProcessor 'org.projectlombok:lombok:1.18.12'\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<h4 class=\"wp-block-heading wp-block-heading\" id=\"ant\">Ant<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"xml\" class=\"language-xml line-numbers\">&lt;javac srcdir=\"src\" destdir=\"build\" source=\"1.8\">\n\t&lt;classpath location=\"lib\/lombok.jar\" \/>\n&lt;\/javac><\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<h3 class=\"wp-block-heading wp-block-heading\" id=\"dostc499pne-adnotacje-w-wersji-stabilnej\">\n<br>Dost&#281;pne adnotacje (w wersji stabilnej)<\/h3>\n\n\n<p class=\"wp-block-paragraph\"><code>@NonNull<\/code> &#8211; generuje kod, kt&oacute;ry sprawdza czy parametr metody lub konstruktora nie posiada warto&#347;ci null. Je&#347;li parametr posiada warto&#347;&#263; null to zostanie wyrzucony wyj&#261;tek NullPointerException.<\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @NonNull\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.NonNull;\n\npublic class SomeClass {\n   \n   public SomeClass(@NonNull String param) {\n       \/\/Don't need to check if param is null or not. You can use it as it is.\n       System.println(param.substring(0, 1));\n   }\n\n   public void someMothod(@NonNull String anotherParam) {\n       \/\/Same here.\n       System.println(anotherParam.substring(0, 1));\n   }\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><code>@Cleanup<\/code>&#8211; automatycznie czy&#347;ci dany zas&oacute;b je&#347;li proces wykonywania programu opu&#347;ci blok kodu. Standardowo adnotacja ta wywo&#322;uj&#281; metod&#281; &#8222;close()&#8221; na obiekcie, przed kt&oacute;rym zosta&#322;a dodana. Jak wida&#263; w za&#322;&#261;czonym ni&#380;ej kodzie, nie ma potrzeby tworzenia konstrukcji try final aby wywo&#322;a&#263; metod&#281; &#8222;close()&#8221; dla obiekt&oacute;w &#8222;InputStream&#8221; i &#8222;OutputStream&#8221;<\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @Cleanup\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.Cleanup;\nimport java.io.*;\n\npublic class CleanupExample {\n  public static void main(String[] args) throws IOException {\n    @Cleanup InputStream in = new FileInputStream(args[0]);\n    @Cleanup OutputStream out = new FileOutputStream(args[1]);\n    byte[] b = new byte[10000];\n    while (true) {\n      int r = in.read(b);\n      if (r == -1) break;\n      out.write(b, 0, r);\n    }\n  }\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Je&#347;li dany obiekt nie posiada metody &#8222;close()&#8221; mo&#380;na poda&#263; naw&#281; innej metody, kt&oacute;ra ma by&#263; wykonana po wyj&#347;cu z danego bloku kodu. W poni&#380;szym przyk&#322;adzie zostanie wywo&#322;ana metoda &#8222;cleanResources()&#8221; zaimplementowana w klasie &#8222;SomeObject&#8221;.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">@Cleanup(\"cleanResources\") SomeObject someObject= new SomeObject();<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><code>@Getter\/@Setter<\/code> &#8211;  generuj&#261;&nbsp;gettery i&nbsp;settery.&nbsp;adnotacja&nbsp;&#8222;@Getter&#8221;&nbsp;z parametrem&nbsp;&#8222;lazy=true&#8221;&nbsp;pozwala na&nbsp;zdefiniowanie, &#380;e dane pole ma &#322;adowa&#263; dane w trybie&nbsp;&#8222;Lazy&nbsp;Loading&#8221;. S&#261; to chyba najcz&#281;&#347;ciej stosowane adnotacje z projektu&nbsp;Lombok. <\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @Getter i @Setter\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.Getter;\nimport lombok.Setter;\n\npublic class Person {\n\n   @Getter\n   @Setter\n   private int age;\n\n   @Getter\n   @Setter\n   private String name;\n\n   \/\/ you don't have to implement getters and setters yourself\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><code>@ToString<\/code> i <code>@EqualsAndHashCode<\/code> &#8211;  generuj&#261;&nbsp;odpowiednio metody&nbsp;&#8222;toString()&#8221;,&nbsp;&#8222;equals()&#8221;&nbsp;oraz&nbsp;&#8222;hashCode()&#8221;. Dodajemy je przed definicj&#261; klasy. <\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @ToString i @EqualsAndHashCode\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.ToString;\nimport lombok.EqualsAndHashCode;\n\n@ToString\n@EqualsAndHashCode\npublic class Person {\n   \/\/ some fields, getters and setters\n\n   \/\/ you don't have to implement toString, equals and hashcode methods yourself\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n\n\n<p class=\"wp-block-paragraph\"><br><code>@NoArgsConstructor<\/code> &#8211; tworzy konstruktor bezparametrowy.<\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @NoArgsConstructor \" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.NoArgsConstructor;\n\n@NoArgsConstructor \npublic class Person {\n   \/\/ non-parameter constructor will be created here\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><code>@RequiredArgsConstructor<\/code> &#8211;  tworzy konstruktor z parametrami, kt&oacute;rych warto&#347;ci s&#261; przypisywane polom finalnym, kt&oacute;re nie maj&#261; przypisanej warto&#347;ci oraz tym&nbsp;oznaczonych&nbsp;adnotacj&#261;&nbsp;&#8222;@NonNull&#8221;. <\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @RequiredArgsConstructor\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.RequiredArgsConstructor;\n\n@RequiredArgsConstructor\npublic class Person {\n\n   private final int age = 10;\n   \n   @NonNull\n   private String name;\n\n   private String city;\n   \n   \/**\n   this will be generated by Lombok\n   public RequiredArgsConstructor(String name) {\n      this.name = name;\n   }\n   **\/\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><code>@AllArgsConstructor<\/code> &#8211; tworzy konstruktor ze wszystkimi parametrami odpowiadaj&#261;cymi polom klasy.<\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @AllArgsConstructor\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.AllArgsConstructor;\n\n@AllArgsConstructor\npublic class Person {\n\n   private int age = 10;\n   private String name;\n   private String city;\n   \n   \/**\n   this will be generated by Lombok\n   public RequiredArgsConstructor(int age, String name, String city) {\n      this.age = age;\n      this.name = name;\n      this.city = city;\n   }\n   **\/\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"> <br><code>@Data<\/code> &#8211; tworzy to samo co @ToString, @EqualsAndHashCode, @Getter, @Setter i @RequiredArgsConstructor. Innymi s&#322;owy, jest to skr&oacute;t do najcz&#281;&#347;ciej u&#380;ywanych ze sob&#261; adnotacji Lombok&#8217;a.<\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @Data\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.AccessLevel;\nimport lombok.Setter;\nimport lombok.Data;\nimport lombok.ToString;\n\n@Data \npublic class SomeClass{\n  private final String name; \/\/setter will be not generated because this field is final\n  private int count; \/\/ setter and getter will be created\n  private String[] tags; \/\/ setter and getter will be created\n  \n  \/\/equals, hashCode and toString methods and constructor will be created here\n}<\/code><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><br><code>@Value<\/code> &#8211;  jest&nbsp;to&nbsp;niemutowana&nbsp;wersja adnotacji&nbsp;@Data. Umieszczenie tej adnotacji przed definicj&#261; klasy tworzy j&#261; finaln&#261;. Wszystkie pola zostan&#261; oznaczone jako&nbsp;final. Dodatkowo&nbsp;je&#347;li&nbsp;nie posiadaj&#261; jawnie zdefiniowanego modyfikatora dost&#281;pu, to zostanie im przydzielony modyfikator&nbsp;private. Nie zostan&#261; wygenerowane dla nich&nbsp;settery. Poza tym wszystkie inne&nbsp;w&#322;a&#347;ciwo&#347;ci&nbsp;adnotacji&nbsp;@Data&nbsp;pozostaj&#261; niezmienne. <\/p>\n\n\n\n<pre title=\"Przyk\u0142ad zastosowania @Value\" class=\"wp-block-code\"><code lang=\"java\" class=\"language-java line-numbers\">import lombok.AccessLevel;\nimport lombok.experimental.NonFinal;\nimport lombok.experimental.Value;\nimport lombok.experimental.Wither;\nimport lombok.ToString;\n\n@Value \npublic class SomeClass{ \/\/this class will be marked as final \n  String name; \/\/this will be private final field\n  int count; \/\/ this will be also private and final field\n  protected String[] tags; \/\/ this will be protected final field\n}<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading wp-block-heading\" id=\"podsumowanie\">\n<br>Podsumowanie<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Oczywi&#347;cie, nie s&#261; to jedyne adnotacje dost&#281;pne w Lombok&#8217;u. Istnieje jeszcze kilka adnotacji dost&#281;pnych w wersji stabilnej oraz ca&#322;a masa nowych feature&#8217;&oacute;w, kt&oacute;re s&#261; jeszcze w fazie testowania &#8211; experimental.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Dodatkowo Lombok udost&#281;pnia jeszcze mo&#380;liwo&#347;&#263; dynamicznego typowania zmiennych. Ten temat zostanie poruszony w innym po&#347;cie ju&#380; nied&#322;ugo!<\/p>\n\n\n<p class=\"wp-block-paragraph\"> Jak zawsze zach&#281;cam Ci&#281; do udost&#281;pnienia tej tre&#347;ci&nbsp;i zapisania si&#281; na list&#281;&nbsp;mailingow&#261;, aby&nbsp;nie&nbsp;omin&#261; Ci&#281; &#380;aden nowy post na blogu! <\/p>\n\n\n<p class=\"wp-block-paragraph\">Przydatne linki:<br> <a rel=\"noreferrer noopener\" aria-label=\" (otwiera si&#281; na nowej zak&#322;adce)\" href=\"https:\/\/projectlombok.org\/\" target=\"_blank\">https:\/\/projectlombok.org\/<\/a> <br> <a rel=\"noreferrer noopener\" aria-label=\" (otwiera si&#281; na nowej zak&#322;adce)\" href=\"https:\/\/projectlombok.org\/features\/all\" target=\"_blank\">https:\/\/projectlombok.org\/features\/all<\/a> <\/p>","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Czas czytania: <\/span> <span class=\"rt-time\">4<\/span> <span class=\"rt-label rt-postfix\">minut<\/span><\/span> Projekt Lombok to darmowe narz\u0119dzie do generowania najcz\u0119\u015bciej powtarzaj\u0105cego si\u0119 kodu. Za pomoc\u0105 adnotacji jeste\u015bmy w stanie znacz\u0105co zmniejszy\u0107 ilo\u015b\u0107 linii kodu nie wp\u0142ywaj\u0105c tym samym na jego u\u017cyteczno\u015b\u0107.<\/p>","protected":false},"author":1,"featured_media":958,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[18,22],"class_list":["post-458","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programowanie","tag-java","tag-lombok"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.11 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Lombok - mniej kodu a ten sam efekt! - Ara Software<\/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:\/\/arasoftware.pl\/en\/lombok-mniej-kodu-a-ten-sam-efekt\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Lombok - mniej kodu a ten sam efekt! - Ara Software\" \/>\n<meta property=\"og:description\" content=\"Czas czytania: 4 minut Projekt Lombok to darmowe narz\u0119dzie do generowania najcz\u0119\u015bciej powtarzaj\u0105cego si\u0119 kodu. Za pomoc\u0105 adnotacji jeste\u015bmy w stanie znacz\u0105co zmniejszy\u0107 ilo\u015b\u0107 linii kodu nie wp\u0142ywaj\u0105c tym samym na jego u\u017cyteczno\u015b\u0107.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/arasoftware.pl\/en\/lombok-mniej-kodu-a-ten-sam-efekt\/\" \/>\n<meta property=\"og:site_name\" content=\"Ara Software\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-02T15:46:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-21T08:34:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/arasoftware.pl\/wp-content\/uploads\/2020\/07\/Lombok.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Radek Osak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Radek Osak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/\"},\"author\":{\"name\":\"Radek Osak\",\"@id\":\"https:\/\/arasoftware.pl\/#\/schema\/person\/a13fe68bd27e762ef255547a88956902\"},\"headline\":\"Lombok &#8211; mniej kodu a ten sam efekt!\",\"datePublished\":\"2020-06-02T15:46:50+00:00\",\"dateModified\":\"2021-10-21T08:34:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/\"},\"wordCount\":670,\"publisher\":{\"@id\":\"https:\/\/arasoftware.pl\/#organization\"},\"keywords\":[\"Java\",\"Lombok\"],\"articleSection\":[\"Programowanie\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/\",\"url\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/\",\"name\":\"Lombok - mniej kodu a ten sam efekt! - Ara Software\",\"isPartOf\":{\"@id\":\"https:\/\/arasoftware.pl\/#website\"},\"datePublished\":\"2020-06-02T15:46:50+00:00\",\"dateModified\":\"2021-10-21T08:34:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/arasoftware.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lombok &#8211; mniej kodu a ten sam efekt!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/arasoftware.pl\/#website\",\"url\":\"https:\/\/arasoftware.pl\/\",\"name\":\"Ara Software\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/arasoftware.pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/arasoftware.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/arasoftware.pl\/#organization\",\"name\":\"Ara Software\",\"url\":\"https:\/\/arasoftware.pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/arasoftware.pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/arasoftware.pl\/wp-content\/uploads\/2023\/06\/ara-logo-light-1.svg\",\"contentUrl\":\"https:\/\/arasoftware.pl\/wp-content\/uploads\/2023\/06\/ara-logo-light-1.svg\",\"width\":317,\"height\":55,\"caption\":\"Ara Software\"},\"image\":{\"@id\":\"https:\/\/arasoftware.pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/arasoftware.pl\/#\/schema\/person\/a13fe68bd27e762ef255547a88956902\",\"name\":\"Radek Osak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/arasoftware.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2a5a97fd24033c3df7dff799dc95774b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2a5a97fd24033c3df7dff799dc95774b?s=96&d=mm&r=g\",\"caption\":\"Radek Osak\"},\"url\":\"https:\/\/arasoftware.pl\/en\/author\/radek030790gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Lombok - mniej kodu a ten sam efekt! - Ara Software","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:\/\/arasoftware.pl\/en\/lombok-mniej-kodu-a-ten-sam-efekt\/","og_locale":"en_US","og_type":"article","og_title":"Lombok - mniej kodu a ten sam efekt! - Ara Software","og_description":"Czas czytania: 4 minut Projekt Lombok to darmowe narz\u0119dzie do generowania najcz\u0119\u015bciej powtarzaj\u0105cego si\u0119 kodu. Za pomoc\u0105 adnotacji jeste\u015bmy w stanie znacz\u0105co zmniejszy\u0107 ilo\u015b\u0107 linii kodu nie wp\u0142ywaj\u0105c tym samym na jego u\u017cyteczno\u015b\u0107.","og_url":"https:\/\/arasoftware.pl\/en\/lombok-mniej-kodu-a-ten-sam-efekt\/","og_site_name":"Ara Software","article_published_time":"2020-06-02T15:46:50+00:00","article_modified_time":"2021-10-21T08:34:08+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/arasoftware.pl\/wp-content\/uploads\/2020\/07\/Lombok.png","type":"image\/png"}],"author":"Radek Osak","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Radek Osak","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/#article","isPartOf":{"@id":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/"},"author":{"name":"Radek Osak","@id":"https:\/\/arasoftware.pl\/#\/schema\/person\/a13fe68bd27e762ef255547a88956902"},"headline":"Lombok &#8211; mniej kodu a ten sam efekt!","datePublished":"2020-06-02T15:46:50+00:00","dateModified":"2021-10-21T08:34:08+00:00","mainEntityOfPage":{"@id":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/"},"wordCount":670,"publisher":{"@id":"https:\/\/arasoftware.pl\/#organization"},"keywords":["Java","Lombok"],"articleSection":["Programowanie"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/","url":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/","name":"Lombok - mniej kodu a ten sam efekt! - Ara Software","isPartOf":{"@id":"https:\/\/arasoftware.pl\/#website"},"datePublished":"2020-06-02T15:46:50+00:00","dateModified":"2021-10-21T08:34:08+00:00","breadcrumb":{"@id":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/arasoftware.pl\/lombok-mniej-kodu-a-ten-sam-efekt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/arasoftware.pl\/"},{"@type":"ListItem","position":2,"name":"Lombok &#8211; mniej kodu a ten sam efekt!"}]},{"@type":"WebSite","@id":"https:\/\/arasoftware.pl\/#website","url":"https:\/\/arasoftware.pl\/","name":"Ara Software","description":"","publisher":{"@id":"https:\/\/arasoftware.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/arasoftware.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/arasoftware.pl\/#organization","name":"Ara Software","url":"https:\/\/arasoftware.pl\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/arasoftware.pl\/#\/schema\/logo\/image\/","url":"https:\/\/arasoftware.pl\/wp-content\/uploads\/2023\/06\/ara-logo-light-1.svg","contentUrl":"https:\/\/arasoftware.pl\/wp-content\/uploads\/2023\/06\/ara-logo-light-1.svg","width":317,"height":55,"caption":"Ara Software"},"image":{"@id":"https:\/\/arasoftware.pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/arasoftware.pl\/#\/schema\/person\/a13fe68bd27e762ef255547a88956902","name":"Radek Osak","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/arasoftware.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2a5a97fd24033c3df7dff799dc95774b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2a5a97fd24033c3df7dff799dc95774b?s=96&d=mm&r=g","caption":"Radek Osak"},"url":"https:\/\/arasoftware.pl\/en\/author\/radek030790gmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/posts\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/comments?post=458"}],"version-history":[{"count":0,"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/posts\/458\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/media\/958"}],"wp:attachment":[{"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/media?parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/categories?post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arasoftware.pl\/en\/wp-json\/wp\/v2\/tags?post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}