Bird
Raised Fist0
Kotlinprogramming~10 mins

Platform types from Java interop in Kotlin - Interactive Code Practice

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

Complete the code to safely call a Java method that returns a platform type.

Kotlin
val length = javaString?.[1]
Drag options to blanks, or click blank then click option'
Alength
Blength()
Csize
Dcount
Attempts:
3 left
💡 Hint
Common Mistakes
Using length without parentheses causes an error.
2fill in blank
medium

Complete the code to safely handle a platform type that might be null.

Kotlin
val safeString: String = javaString[1] ?: "default"
Drag options to blanks, or click blank then click option'
A?.
B?
C!!
D?:
Attempts:
3 left
💡 Hint
Common Mistakes
Using ? or ?. does not assert non-null.
3fill in blank
hard

Fix the error in calling a Java method returning a platform type that might be null.

Kotlin
val length = javaString.[1]
Drag options to blanks, or click blank then click option'
Alength()!!
Blength()
Clength
Dlength!!
Attempts:
3 left
💡 Hint
Common Mistakes
Using length property causes error.
Forgetting !! leads to nullable type.
4fill in blank
hard

Fill both blanks to safely check and use a platform type from Java.

Kotlin
if (javaString [1] null) {
    val length = javaString.[2]()
}
Drag options to blanks, or click blank then click option'
A!=
B==
Clength
Attempts:
3 left
💡 Hint
Common Mistakes
Using == null instead of != null.
Using property length instead of method length().
5fill in blank
hard

Fill all three blanks to create a safe call chain with platform types from Java.

Kotlin
val length = javaString[1]?.[2]()?.let { it [3] 0 } ?: -1
Drag options to blanks, or click blank then click option'
A!!
Blength
C>
Attempts:
3 left
💡 Hint
Common Mistakes
Using property length without parentheses.
Missing null assertion operator.

Practice

(1/5)
1. What is a platform type in Kotlin when interoperating with Java code?
easy
A. A type whose nullability is unknown and can be treated as nullable or non-nullable
B. A Kotlin type that is always non-nullable
C. A Java type that is always nullable
D. A Kotlin type that enforces strict null checks at compile time

Solution

  1. Step 1: Understand Kotlin-Java interoperability

    Kotlin calls Java code but Java does not specify nullability explicitly.
  2. Step 2: Define platform types

    Platform types are types from Java whose nullability Kotlin cannot be sure about, so Kotlin treats them flexibly as nullable or non-nullable.
  3. Final Answer:

    A type whose nullability is unknown and can be treated as nullable or non-nullable -> Option A
  4. Quick Check:

    Platform type = unknown nullability [OK]
Hint: Platform types have unknown nullability from Java [OK]
Common Mistakes:
  • Thinking platform types are always non-nullable
  • Assuming platform types enforce null checks
  • Confusing platform types with Kotlin nullable types
2. Which of the following Kotlin declarations correctly handles a Java platform type that might be null?
easy
A. val name: String!! = javaObject.getName()
B. val name: String = javaObject.getName()
C. val name: String? = javaObject.getName()
D. val name: String = javaObject.getName()!!

Solution

  1. Step 1: Recognize platform type usage

    Java method returns a platform type; Kotlin doesn't know if it's nullable.
  2. Step 2: Choose safe Kotlin type

    Declaring as nullable String? safely handles possible null values.
  3. Final Answer:

    val name: String? = javaObject.getName() -> Option C
  4. Quick Check:

    Use nullable type for platform types to avoid crashes [OK]
Hint: Use nullable type (String?) for uncertain Java values [OK]
Common Mistakes:
  • Using non-nullable type without null check
  • Using double-bang (!!) unnecessarily
  • Declaring invalid Kotlin types like String!!
3. Consider this Kotlin code calling a Java method returning a platform type:
val length = javaObject.getName().length

What happens if getName() returns null at runtime?
medium
A. The code throws a NullPointerException at runtime
B. The code fails to compile due to null safety
C. The code compiles and runs safely, length is 0
D. The code returns length as -1

Solution

  1. Step 1: Understand platform type nullability

    Platform types can be null but Kotlin treats them as non-nullable unless specified.
  2. Step 2: Analyze code behavior

    Calling length on a null value causes a NullPointerException at runtime.
  3. Final Answer:

    The code throws a NullPointerException at runtime -> Option A
  4. Quick Check:

    Platform types can cause runtime NPE if null used unsafely [OK]
Hint: Accessing platform type without null check risks NPE [OK]
Common Mistakes:
  • Assuming Kotlin prevents runtime null errors
  • Thinking length returns 0 for null
  • Expecting compile-time error for platform types
4. This Kotlin code calls a Java method returning a platform type:
val length = javaObject.getName()?.length ?: 0

What is the main benefit of using ?. here?
medium
A. It forces the compiler to treat the value as non-null
B. It throws an exception if the value is null
C. It converts the platform type to a non-nullable type
D. It safely handles null by returning 0 instead of crashing

Solution

  1. Step 1: Identify safe call operator usage

    The ?. operator calls length only if getName() is not null.
  2. Step 2: Understand Elvis operator fallback

    If getName() is null, the expression returns 0 instead of crashing.
  3. Final Answer:

    It safely handles null by returning 0 instead of crashing -> Option D
  4. Quick Check:

    Safe call + Elvis operator prevent null crashes [OK]
Hint: Use ?. and ?: to avoid null crashes with platform types [OK]
Common Mistakes:
  • Thinking ?. forces non-null type
  • Assuming it throws exception on null
  • Confusing safe call with non-null assertion (!!)
5. You have a Java method fun getUser(): User returning a platform type. You want to safely get the user's email or return "unknown" if null. Which Kotlin code correctly handles this?
hard
A. val email = getUser().email ?: "unknown"
B. val email = getUser()?.email ?: "unknown"
C. val email = getUser().email!!
D. val email = getUser().email

Solution

  1. Step 1: Recognize platform type and possible nulls

    getUser() returns a platform type; email might be null.
  2. Step 2: Use safe call and Elvis operator

    Using ?. safely accesses email; ?: provides fallback "unknown" if null.
  3. Final Answer:

    val email = getUser()?.email ?: "unknown" -> Option B
  4. Quick Check:

    Safe call + fallback handles null platform types safely [OK]
Hint: Use ?. with ?: to safely access nullable Java values [OK]
Common Mistakes:
  • Using non-null assertion (!!) risking runtime crash
  • Ignoring possible null from platform type
  • Not providing fallback for null values
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