<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>optional - Kama Kaczmarek</title>
	<atom:link href="https://kamakaczmarek.net/tag/optional/feed/" rel="self" type="application/rss+xml" />
	<link>https://kamakaczmarek.net/tag/optional/</link>
	<description>Strona z materiałami dla uczniów i nauczycieli</description>
	<lastBuildDate>Fri, 10 Apr 2026 07:45:37 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>20. JAVA &#8211; klasa Optional</title>
		<link>https://kamakaczmarek.net/20-java-klasa-optional/</link>
		
		<dc:creator><![CDATA[Kama]]></dc:creator>
		<pubDate>Wed, 13 Oct 2021 14:03:53 +0000</pubDate>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[klasa]]></category>
		<category><![CDATA[optional]]></category>
		<guid isPermaLink="false">https://kamakaczmarek.net/?p=3372</guid>

					<description><![CDATA[<p>Klasa Optional wprowadzona od Javy 8 umożliwia nam sprawdzenie, czy występuje null, bez pisania nadmiarowego kodu i uniknięcie częstego błędu NullPointerException.Jest to generyczny pakiet, który umożliwia opakowanie zmiennej o wartości null. Przykład: import java.util.Optional;public class OptionalExample { public static void main(String[] args) { //tworzymy Optional, który nie może być null za pomocą metody of() Optional&#60;String&#62; [&#8230;]</p>
<p>Artykuł <a href="https://kamakaczmarek.net/20-java-klasa-optional/">20. JAVA &#8211; klasa Optional</a> pochodzi z serwisu <a href="https://kamakaczmarek.net">Kama Kaczmarek</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Klasa Optional wprowadzona od Javy 8 umożliwia nam sprawdzenie, czy występuje null, bez pisania nadmiarowego kodu i uniknięcie częstego błędu NullPointerException.<br />Jest to generyczny pakiet, który umożliwia opakowanie zmiennej o wartości null.</p>
<p>Przykład:</p>
<pre>import java.util.Optional;<br /><br /><br />public class OptionalExample {<br />    public static void main(String[] args) {<br />        //tworzymy Optional, który nie może być null za pomocą metody of()<br />        Optional&lt;String&gt; optional1 = Optional.of("Optional.of()");<br />        System.out.println(optional1.get());<br /><br />        //jezeli stworzymy optional z null:<br />        //Optional&lt;String&gt; optional2 = Optional.of(null);//otrzymujemy błąd NullPointerException<br /><br />        //metoda nullable - może posiadać wartość lub bycnull<br />        Optional&lt;String&gt; optional3 = Optional.ofNullable("Optional.ofNullable(\"Nie null\")");<br />        System.out.println(optional3);<br />        Optional&lt;String&gt; optional4 = Optional.ofNullable(null);<br />        System.out.println("tu mamy null i zwróci: " + optional4 + ", nie ma błędu.");<br /><br />        //metoda empty tworząca pusty Optional<br />        Optional&lt;String&gt; optional5 = Optional.empty();<br />        System.out.println("pusty Optional zwróci: " + optional5 + ", nie ma błędu.");<br /><br />        //tworzymy Optionala i wykorzystamy jego metody<br />        //tworzymy zmienną, która może mieć wartość lub null - nie wiemy co przechowuje<br />        String str = String.valueOf(0);<br />        //str=null; //spowosuje wyświetlenie komunikatu zmienna str jest null<br />        Optional&lt;String&gt; optStr = Optional.ofNullable(str);<br />        //pokaż kotku co masz w środku<br />        if (optStr.isPresent()){<br />            System.out.println(optStr.get());<br />        } else {<br />            System.out.println("zmienna str jest null");<br />        }<br /><br />        //jeżeli wewnątrz Optionala jest wartość możemy wywołać lambdę<br />        optStr.ifPresent( i -&gt; System.out.println(i));<br />        //referencja do metody<br />        optStr.ifPresent(System.out::println);<br /><br />        //metoda map() pozwala na przekazanie funkcji jeżeli w obiekcie jest wartość, zwrócona wartość może być null<br />        Integer integer = Integer.valueOf(0);<br />        Optional&lt;Integer&gt; optInt = Optional.ofNullable(integer);<br />        Optional&lt;Integer&gt; res = optInt.map(i -&gt; i+1);<br />        System.out.println(res);<br />        System.out.println(res.get());<br /><br />        Integer integer1 = Integer.valueOf(0);<br />        Optional&lt;Integer&gt; optInt1 = Optional.ofNullable(integer1);<br />        optInt.map(i -&gt; i+1)<br />                .map(i -&gt; i * 100)<br />                .map(i -&gt; i / 2)<br />                .ifPresent(System.out::println);<br /><br />        Integer integer2 = null;<br />        Optional&lt;Integer&gt; optIntNull = Optional.ofNullable(integer2);<br />        Optional&lt;Integer&gt; resNull = optIntNull.map(i -&gt; i+1);<br />        System.out.println(resNull); //to nam zwróci Optional.empty<br />        //System.out.println(resNull.get()); //ten zapis wygeneruje błąd: NoSuchElementException<br /><br />        //jeżeli chcemy zwrócić domyślną wartość jeżeli nasz Optional jest null, to korzystamy z orElse<br />        System.out.println(resNull.orElse(666)); //ta wartość nie zostanie wyświetlona jeżeli optional nie będzie null<br /><br />        //filtrowanie Optional poprzez wyrażenie lambda, jeżeli warunek zostanie spełniony to optional przekazywany jest dalej, jeżeli nie to otrzymamy pusty obiekt<br />        String str1 = "Nie pusty string";<br />        Optional&lt;String&gt; optS = Optional.ofNullable(str1);<br />        String test = optS.filter(s -&gt; s.length() &gt;0).orElse("Domyśny tekst");<br />        System.out.println(test);<br /><br />        Optional&lt;String&gt; optS2 = Optional.ofNullable(null);<br />        optS2.map(s -&gt; s + "blablabla")<br />                .filter(s -&gt; s.length() &gt;0)//jeżeli otional spełnia warunek to jest przekazywany dalej<br />                .or( () -&gt; Optional.ofNullable("Nowy domyślny tekst"))//metoda or podstawia domyślną wartość jeżeli pojawi się pusty Optional<br />                .ifPresent(System.out::println);<br /><br />        //metoda or i referencje<br />        String st = "Uwielbiam programować"; //zamień tekst na null<br />        Optional&lt;String&gt; os = Optional.ofNullable(st);<br />        String text = os.filter(s-&gt;s.length()&gt;10)<br />                .or( () -&gt; Optional.ofNullable("mamy null"))<br />                .map(String::toUpperCase)<br />                .map(String::trim)<br />                .orElse("i jestem tu");<br />        System.out.println(text);<br />    }<br />}</pre>
<p> </p>
<p> </p>
<p> </p>
<p>Artykuł <a href="https://kamakaczmarek.net/20-java-klasa-optional/">20. JAVA &#8211; klasa Optional</a> pochodzi z serwisu <a href="https://kamakaczmarek.net">Kama Kaczmarek</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
