From 2c0b55e4a3dfddd0739827a5a78b7daa5ac33ce9 Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Tue, 17 Jan 2017 15:44:28 +0100 Subject: [PATCH 1/5] BAEL-382 more examples --- .../kotlin/com/baeldung/kotlin/ItemService.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt index 3c0d2eacb1..97360db822 100644 --- a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt +++ b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt @@ -26,25 +26,32 @@ class ItemManager(val categoryId: String, val dbConnection: String) { println(result) } + + fun sum(a: Int, b: Int): Int { + return a + b + } } fun main(args: Array) { val numbers = arrayOf("first", "second", "third", "fourth") - var concat = "" for (n in numbers) { - concat += n + println(n) } - var sum = 0 - for (i in 2..9) { - sum += i + + for (i in 2..9 step 2) { + println(i) } + val res = 1.rangeTo(10).map { it * 2 } + println(res) + val firstName = "Tom" val secondName = "Mary" val concatOfNames = "$firstName + $secondName" println("Names: $concatOfNames") + val sum = "four: ${2 + 2}" val itemManager = ItemManager("cat_id", "db://connection") val result = "function result: ${itemManager.isFromSpecificCategory("1")}" From 7fdf20df6baf4170b4350d9f30c7e83f3638ac6a Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Tue, 17 Jan 2017 16:09:05 +0100 Subject: [PATCH 2/5] BAEL-382 lambdas --- .../kotlin/com/baeldung/kotlin/ItemService.kt | 1 + .../kotlin/com/baeldung/kotlin/LambdaTest.kt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt diff --git a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt index 97360db822..1740fb2863 100644 --- a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt +++ b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt @@ -54,6 +54,7 @@ fun main(args: Array) { val sum = "four: ${2 + 2}" val itemManager = ItemManager("cat_id", "db://connection") + ItemManager(categoryId = "catId", dbConnection = "db://Connection") val result = "function result: ${itemManager.isFromSpecificCategory("1")}" println(result) diff --git a/kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt b/kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt new file mode 100644 index 0000000000..34217336a0 --- /dev/null +++ b/kotlin/src/test/kotlin/com/baeldung/kotlin/LambdaTest.kt @@ -0,0 +1,19 @@ +package com.baeldung.kotlin + +import org.junit.Test +import kotlin.test.assertEquals + + +class LambdaTest { + @Test + fun givenListOfNumber_whenDoingOperationsUsingLambda_shouldReturnProperResult() { + //given + val listOfNumbers = listOf(1, 2, 3) + + //when + val sum = listOfNumbers.reduce { a, b -> a + b } + + //then + assertEquals(6, sum) + } +} \ No newline at end of file From faa3d322f8868b8af7eb1d0c143acbfc796efa90 Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Tue, 17 Jan 2017 16:25:19 +0100 Subject: [PATCH 3/5] BAEL-382 creating mutalbe and immutable list --- kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt index 1740fb2863..96e297115b 100644 --- a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt +++ b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt @@ -30,6 +30,7 @@ class ItemManager(val categoryId: String, val dbConnection: String) { fun sum(a: Int, b: Int): Int { return a + b } + } fun main(args: Array) { @@ -39,7 +40,6 @@ fun main(args: Array) { println(n) } - for (i in 2..9 step 2) { println(i) } @@ -71,4 +71,9 @@ fun main(args: Array) { "Alice" -> println("Hi lady") } + val items = listOf(1, 2, 3, 4) + + + val rwList = mutableListOf(1, 2, 3) + rwList.add(5) } \ No newline at end of file From a269eba42734973639d7bdee522881b83713db8f Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Wed, 18 Jan 2017 19:37:12 +0100 Subject: [PATCH 4/5] BAEL-382 kotlin/java interperability example --- .../java/com/baeldung/java/StringUtils.java | 7 +++++++ .../kotlin/KotlinScalaInteroperabilityTest.kt | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 kotlin/src/main/java/com/baeldung/java/StringUtils.java create mode 100644 kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinScalaInteroperabilityTest.kt diff --git a/kotlin/src/main/java/com/baeldung/java/StringUtils.java b/kotlin/src/main/java/com/baeldung/java/StringUtils.java new file mode 100644 index 0000000000..f405924cdf --- /dev/null +++ b/kotlin/src/main/java/com/baeldung/java/StringUtils.java @@ -0,0 +1,7 @@ +package com.baeldung.java; + +public class StringUtils { + public static String toUpperCase(String name) { + return name.toUpperCase(); + } +} diff --git a/kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinScalaInteroperabilityTest.kt b/kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinScalaInteroperabilityTest.kt new file mode 100644 index 0000000000..f671c3af8b --- /dev/null +++ b/kotlin/src/test/kotlin/com/baeldung/kotlin/KotlinScalaInteroperabilityTest.kt @@ -0,0 +1,20 @@ +package com.baeldung.kotlin + +import com.baeldung.java.StringUtils +import org.junit.Test +import kotlin.test.assertEquals + + +class KotlinScalaInteroperabilityTest { + @Test + fun givenLowercaseString_whenExecuteMethodFromJavaStringUtils_shouldReturnStringUppercase() { + //given + val name = "tom" + + //when + val res = StringUtils.toUpperCase(name) + + //then + assertEquals(res, "TOM") + } +} From 31c65f649ad38bee6bb0b14c0e14188cdd6283fc Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Wed, 25 Jan 2017 19:30:06 +0100 Subject: [PATCH 5/5] BAEL-614 java/kotlin interop --- .../kotlin/com/baeldung/kotlin/ItemService.kt | 6 +++++- .../baeldung/kotlin/MathematicsOperations.kt | 7 +++++++ .../baeldung/kotlin/JavaCallToKotlinTest.java | 17 +++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt create mode 100644 kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinTest.java diff --git a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt index 96e297115b..88de1aa9be 100644 --- a/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt +++ b/kotlin/src/main/kotlin/com/baeldung/kotlin/ItemService.kt @@ -24,13 +24,17 @@ class ItemManager(val categoryId: String, val dbConnection: String) { fun makeAnalyisOfCategory(catId: String): Unit { val result = if (catId == "100") "Yes" else "No" println(result) - + `object`() } fun sum(a: Int, b: Int): Int { return a + b } + fun `object`(): String { + return "this is object" + } + } fun main(args: Array) { diff --git a/kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt b/kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt new file mode 100644 index 0000000000..924f9d2323 --- /dev/null +++ b/kotlin/src/main/kotlin/com/baeldung/kotlin/MathematicsOperations.kt @@ -0,0 +1,7 @@ +package com.baeldung.kotlin + +class MathematicsOperations { + fun addTwoNumbers(a: Int, b: Int): Int { + return a + b + } +} \ No newline at end of file diff --git a/kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinTest.java b/kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinTest.java new file mode 100644 index 0000000000..cfad7cefd4 --- /dev/null +++ b/kotlin/src/test/java/com/baeldung/kotlin/JavaCallToKotlinTest.java @@ -0,0 +1,17 @@ +package com.baeldung.kotlin; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class JavaCallToKotlinTest { + @Test + public void givenKotlinClass_whenCallFromJava_shouldProduceResults() { + //when + int res = new MathematicsOperations().addTwoNumbers(2, 4); + + //then + assertEquals(6, res); + + } +}