Skip to content

Commit 974637a

Browse files
rajat-gargpauljervis
authored andcommitted
change method to return Optionals (eugenp#4464)
* change method to return Optionals * add check for empty Optional
1 parent ee77a84 commit 974637a

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

core-java/src/main/java/com/baeldung/extension/Extension.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
import com.google.common.io.Files;
44
import org.apache.commons.io.FilenameUtils;
55

6+
import java.util.Optional;
7+
68
public class Extension {
79
//Instead of file name we can also specify full path of a file eg. /baeldung/com/demo/abc.java
810
public String getExtensionByApacheCommonLib(String filename) {
911
return FilenameUtils.getExtension(filename);
1012
}
1113

12-
public String getExtensionByStringHandling(String filename) {
13-
String fileExtension = "";
14-
if (filename.contains(".") && filename.lastIndexOf(".") != 0) {
15-
fileExtension = filename.substring(filename.lastIndexOf(".") + 1);
16-
}
17-
return fileExtension;
14+
public Optional<String> getExtensionByStringHandling(String filename) {
15+
return Optional.ofNullable(filename)
16+
.filter(f -> f.contains("."))
17+
.map(f -> f.substring(filename.lastIndexOf(".") + 1));
1818
}
1919

2020
public String getExtensionByGuava(String filename) {

core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import org.junit.Assert;
44
import org.junit.Test;
55

6+
import java.util.Optional;
7+
68
public class ExtensionUnitTest {
79
private Extension extension = new Extension();
810

@@ -16,8 +18,9 @@ public void getExtension_whenApacheCommonIO_thenExtensionIsTrue() {
1618
@Test
1719
public void getExtension_whenStringHandle_thenExtensionIsTrue() {
1820
String expectedExtension = "java";
19-
String actualExtension = extension.getExtensionByStringHandling("Demo.java");
20-
Assert.assertEquals(expectedExtension, actualExtension);
21+
Optional<String> actualExtension = extension.getExtensionByStringHandling("Demo.java");
22+
Assert.assertTrue(actualExtension.isPresent());
23+
actualExtension.ifPresent(ext -> Assert.assertEquals(expectedExtension,ext));
2124
}
2225

2326
@Test

0 commit comments

Comments
 (0)