Bird
Raised Fist0
Kotlinprogramming~10 mins

Calling Java from Kotlin seamlessly - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create an instance of the Java class JavaClass in Kotlin.

Kotlin
val javaObj = [1]()
Drag options to blanks, or click blank then click option'
AJavaClass
BjavaClass
CJava_Class
Djava_class
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase or incorrect class names.
Trying to use Kotlin-specific syntax for Java class instantiation.
2fill in blank
medium

Complete the code to call the Java method getGreeting() from the Kotlin object javaObj.

Kotlin
val message = javaObj.[1]()
Drag options to blanks, or click blank then click option'
Agetgreeting
BgetGreeting
Cget_greeting
DGetGreeting
Attempts:
3 left
💡 Hint
Common Mistakes
Changing the case of the method name.
Using underscores instead of camelCase.
3fill in blank
hard

Fix the error in calling the Java static method JavaClass.staticMethod() from Kotlin.

Kotlin
val result = JavaClass.[1]()
Drag options to blanks, or click blank then click option'
Astatic_method
BStaticMethod
CstaticMethod
DStatic_Method
Attempts:
3 left
💡 Hint
Common Mistakes
Changing method name casing.
Trying to call static methods like instance methods.
4fill in blank
hard

Fill both blanks to create a Kotlin function that calls a Java method calculateSum(int a, int b) and returns the result.

Kotlin
fun sum(a: Int, b: Int): Int = javaObj.[1]([2], b)
Drag options to blanks, or click blank then click option'
AcalculateSum
Ba
Cb
Dsum
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong method names.
Passing wrong variables as arguments.
5fill in blank
hard

Fill all three blanks to create a Kotlin property that calls a Java getter method getName() from javaObj.

Kotlin
val name: String
    get() = javaObj.[1]()

fun printName() {
    println([2])
    println(javaObj.[3]())
}
Drag options to blanks, or click blank then click option'
AgetName
Bname
Dgetname
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect casing for method names.
Printing the method call instead of the property.

Practice

(1/5)
1. What is the main advantage of calling Java code from Kotlin seamlessly?
easy
A. You can reuse existing Java code without extra wrappers or adapters.
B. You must convert Java code to Kotlin before using it.
C. Kotlin cannot call Java code directly; it requires JNI.
D. Java code runs slower when called from Kotlin.

Solution

  1. Step 1: Understand interoperability

    Kotlin is designed to work directly with Java code without needing extra conversion or wrappers.
  2. Step 2: Identify the benefit

    This direct use allows developers to reuse Java libraries and code easily in Kotlin projects.
  3. Final Answer:

    You can reuse existing Java code without extra wrappers or adapters. -> Option A
  4. Quick Check:

    Seamless interoperability = reuse Java code easily [OK]
Hint: Kotlin calls Java code directly without conversion [OK]
Common Mistakes:
  • Thinking Java code must be rewritten in Kotlin
  • Believing JNI is needed for Kotlin-Java calls
  • Assuming performance drops when calling Java from Kotlin
2. Which Kotlin syntax correctly creates an instance of a Java class named JavaHelper?
easy
A. val helper = JavaHelper.new()
B. val helper = new JavaHelper()
C. val helper = JavaHelper()
D. val helper = JavaHelper.create()

Solution

  1. Step 1: Recall Kotlin object creation syntax

    Kotlin creates objects by calling the constructor directly without the new keyword.
  2. Step 2: Apply to Java class

    Since Kotlin interoperates with Java, you create Java objects the same way: JavaHelper().
  3. Final Answer:

    val helper = JavaHelper() -> Option C
  4. Quick Check:

    Kotlin object creation = ClassName() [OK]
Hint: Use ClassName() without 'new' in Kotlin [OK]
Common Mistakes:
  • Using 'new' keyword like in Java
  • Trying to call static factory methods incorrectly
  • Confusing Kotlin syntax with Java syntax
3. Given this Java class:
public class Calculator {
    public int add(int a, int b) { return a + b; }
}

What will this Kotlin code print?
val calc = Calculator()
println(calc.add(3, 4))
medium
A. 7
B. 34
C. Compilation error
D. Runtime exception

Solution

  1. Step 1: Understand Java method call from Kotlin

    Kotlin can call Java methods directly. The add method sums two integers.
  2. Step 2: Calculate the output

    Calling calc.add(3, 4) returns 3 + 4 = 7, which is printed.
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    3 + 4 = 7 [OK]
Hint: Java methods called like Kotlin methods return expected results [OK]
Common Mistakes:
  • Concatenating numbers as strings
  • Expecting syntax errors due to Java-Kotlin call
  • Confusing method call with property access
4. This Kotlin code tries to call a Java method but causes an error:
val helper = JavaHelper()
helper.doSomething()

What is the likely cause if doSomething() is not recognized?
medium
A. Kotlin requires 'new' keyword to call Java methods.
B. Kotlin cannot call Java methods with no parameters.
C. You must import the Java class explicitly in Kotlin.
D. The Java method is private or missing in the class.

Solution

  1. Step 1: Check method visibility and existence

    If Kotlin cannot find doSomething(), it may be private or not declared in the Java class.
  2. Step 2: Understand Kotlin-Java interoperability rules

    Kotlin can call any public Java method directly, so missing or private methods cause errors.
  3. Final Answer:

    The Java method is private or missing in the class. -> Option D
  4. Quick Check:

    Method visibility matters for Kotlin-Java calls [OK]
Hint: Check Java method is public and exists before calling [OK]
Common Mistakes:
  • Assuming Kotlin needs 'new' keyword
  • Forgetting to import Java class (usually auto-imported)
  • Thinking Kotlin can't call no-parameter methods
5. You have a Java class:
public class DataHolder {
    private String data;
    public DataHolder(String data) { this.data = data; }
    public String getData() { return data; }
    public void setData(String data) { this.data = data; }
}

How do you update and print the data from Kotlin?
hard
A. val holder = DataHolder("Hello") holder.data = "World" println(holder.data)
B. val holder = DataHolder("Hello") holder.setData("World") println(holder.getData())
C. val holder = DataHolder("Hello") holder.data.set("World") println(holder.data.get())
D. val holder = DataHolder("Hello") holder.setData = "World" println(holder.getData)

Solution

  1. Step 1: Understand Java private field access

    The data field is private, so Kotlin cannot access it directly.
  2. Step 2: Use Java getter and setter methods

    Kotlin calls setData() to update and getData() to read the value.
  3. Final Answer:

    val holder = DataHolder("Hello") holder.setData("World") println(holder.getData()) -> Option B
  4. Quick Check:

    Use Java getters/setters to access private fields [OK]
Hint: Use Java getters/setters for private fields in Kotlin [OK]
Common Mistakes:
  • Trying to access private fields directly
  • Using property syntax on Java methods incorrectly
  • Confusing method calls with property assignments
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard