際際滷

際際滷Share a Scribd company logo
NEW BEST FRIENDS:
Kotlins Interoperability with Java
Presented by: David Greenhalgh
TODAYS FORMAT
Housekeeping/Intro
Kotlin Talk by David
Live Q&A
Lunch & Learn / Book Giveaway
BIG NERD RANCH
Travel to your of鍖ce Discuss Kotlin
Enjoy lunch!
BUILD BRILLIANCE
BIG NERD RANCH
 Immersive BOOTCAMPS
 Onsite TEAM TRAINING
 THE FRONTIER subscription
 Digital PRODUCT
DEVELOPMENT
4
BIG NERD RANCH
BIG NERD RANCH
BIG NERD RANCH
Travel to your of鍖ce Discuss Kotlin
Enjoy lunch!
How Kotlin Interoperates with Java
Why Kotlin?
 Concise
 Pragmatic
 Flexible
 Type-safe
Why Kotlin?
 Concise
 Pragmatic
Java
person.getName();
Kotlin
person.name
Why Kotlin?
 Type-safe
Objects may not hold null values unless declared using a nullable type
String may not be null
String? may be null
Why Kotlin?
 Full interoperability with Java
Interoperability
Kotlin code and Java code works together directly
 Call Java methods from Kotlin
 Call Kotlin functions from Java
The Kotlin Compilation Process
Kotlin compiles down to Java bytecode
JVM Bytecode
Decompiled Java Bytecode
Interoperability
Kotlin code and Java code works together directly
 Leverage legacy Java frameworks (e.g. Android)
 Gradually transition your codebase from Java to Kotlin
An Example
 Calling a Java method from Kotlin
 Nullability and platform types
 Accessing Java 鍖elds from Kotlin
 Type mapping
 Kotlin 鍖le anatomy
A Java Method
public class Jhava {
public String utterGreeting() {
return "BLARGH";
}
}
Calling a Java Method from Kotlin
fun main(args: Array<String>) {
val adversary = Jhava()
println(adversary.utterGreeting())
}
Another Java Method
public class Jhava {
public String utterGreeting() {
return "BLARGH";
}
public String determineFriendshipLevel() {
return null;
}
}
Platform Type
NullPointerException in Kotlin
fun main(args: Array<String>) {
...
val friendshipLevel = adversary.determineFriendshipLevel()
println(friendshipLevel.toLowerCase())
}
Nullability Annotations
public class Jhava {
@NotNull
public String utterGreeting() {
return "BLARGH";
}
@Nullable
public String determineFriendshipLevel() {
return null;
}
}
IntelliJ Nullable Type Awareness
Java Field with Getter and Setter
public class Jhava {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Property Reference from Kotlin
fun main(args: Array<String>) {
Jhava().name
}
Type Mapping
Some Kotlin types map directly to Java types
 String to String
Type Mapping
Other Kotlin types do not map directly to Java types
 Kotlin's Int to Java's int
Primitive Types
 Java represents basic data types using "primitve types" (non-objects)
 Kotlin represents all data using objects
Integers in Kotlin
fun main(args: Array<String>) {
val adversary = Jhava()
val adversaryHitPoints: Int = adversary.hitPoints
adversaryHitPoints.dec()
println(adversaryHitPoints.javaClass)
}
>>> int
Kotlin File Anatomy
 Java 鍖les contain exactly one class
 Kotlin 鍖les may contain classes, functions, and variables at top-level
 How can you call standalone Kotlin functions from Java?
A Standalone Kotlin Function (Hero.kt)
fun main(args: Array<String>) {
...
}
fun makeProclamation() = "Greetings, beast!"
Calling a File-level Function from Java
public static void main(String[] args) {
System.out.println(HeroKt.makeProclamation());
}
Customizing Class Name (Hero.kt)
@file:JvmName("Hero")
fun main(args: Array<String>) {
...
}
fun makeProclamation() = "Greetings, beast!"
Using the Customized Class Name
public static void main(String[] args) {
System.out.println(Hero.makeProclamation());
}
Customizing Compiled Java Code
JVM annotations exist to customize the Java code that is compiled from
your Kotlin source
 @JvmName
 @JvmOverloads
 @JvmStatic
 @JvmField
Refrain: Your Upgrade Path
Kotlin compiles down to Java bytecode
Risks of Sticking with Java
 Slow moving language development
 Less type-safe
 Less concise
 Less interest from developers
Next Steps
 Start a new project in Kotlin
 Upgrade selectively
 Acquire Kotlin resources

More Related Content

What's hot (13)

04 Java Language And OOP Part IV
04 Java Language And OOP Part IV04 Java Language And OOP Part IV
04 Java Language And OOP Part IV
Hari Christian
Polymorphism
PolymorphismPolymorphism
Polymorphism
Nochiketa Chakraborty
05 Java Language And OOP Part V
05 Java Language And OOP Part V05 Java Language And OOP Part V
05 Java Language And OOP Part V
Hari Christian
Paca oops slid
Paca oops slidPaca oops slid
Paca oops slid
pacatarpit
Ruby
RubyRuby
Ruby
Futada Takashi
To Lombok or not to Lombok | J-Fall 2019
To Lombok or not to Lombok | J-Fall 2019To Lombok or not to Lombok | J-Fall 2019
To Lombok or not to Lombok | J-Fall 2019
Kaya Weers
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyski)
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyski)JDD 2017: Kotlin for Java developers (Tomasz Kleszczyski)
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyski)
PROIDEA
Data classes in kotlin by Naveed
Data classes in kotlin by NaveedData classes in kotlin by Naveed
Data classes in kotlin by Naveed
Naveed Ahmad - Google Certified Android Developer
Java essentials for hadoop
Java essentials for hadoopJava essentials for hadoop
Java essentials for hadoop
Seo Gyansha
From DOT to Dotty
From DOT to DottyFrom DOT to Dotty
From DOT to Dotty
Martin Odersky
Oops in java
Oops in javaOops in java
Oops in java
baabtra.com - No. 1 supplier of quality freshers
06 Java Language And OOP Part VI
06 Java Language And OOP Part VI06 Java Language And OOP Part VI
06 Java Language And OOP Part VI
Hari Christian
Object-Oriented Programming Concepts
Object-Oriented Programming ConceptsObject-Oriented Programming Concepts
Object-Oriented Programming Concepts
Kwangshin Oh

Similar to Kotlin's Interoperability with Java (20)

Programming with Kotlin
Programming with KotlinProgramming with Kotlin
Programming with Kotlin
David Gassner
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Native - C / Swift Interop - ACCU Autmn 2019
Kotlin Native - C / Swift Interop - ACCU Autmn 2019Kotlin Native - C / Swift Interop - ACCU Autmn 2019
Kotlin Native - C / Swift Interop - ACCU Autmn 2019
Eamonn Boyle
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
Kotlin Language powerpoint show file
Kotlin Language powerpoint show fileKotlin Language powerpoint show file
Kotlin Language powerpoint show file
Saurabh Tripathi
Kotlin Presentation
Kotlin PresentationKotlin Presentation
Kotlin Presentation
Shayan Pourvatan
Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
Magda Miu
Getting Started With Kotlin
Getting Started With KotlinGetting Started With Kotlin
Getting Started With Kotlin
Gaurav sharma
Transitioning Android Teams Into Kotlin
Transitioning Android Teams Into KotlinTransitioning Android Teams Into Kotlin
Transitioning Android Teams Into Kotlin
Garth Gilmour
Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019
Eamonn Boyle
Kotlin from-scratch
Kotlin from-scratchKotlin from-scratch
Kotlin from-scratch
Franco Lombardo
Programming with Kotlin
Programming with KotlinProgramming with Kotlin
Programming with Kotlin
David Gassner
Kotlin Native - C / Swift Interop - ACCU Autmn 2019
Kotlin Native - C / Swift Interop - ACCU Autmn 2019Kotlin Native - C / Swift Interop - ACCU Autmn 2019
Kotlin Native - C / Swift Interop - ACCU Autmn 2019
Eamonn Boyle
Kotlin Language powerpoint show file
Kotlin Language powerpoint show fileKotlin Language powerpoint show file
Kotlin Language powerpoint show file
Saurabh Tripathi
Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
Magda Miu
Getting Started With Kotlin
Getting Started With KotlinGetting Started With Kotlin
Getting Started With Kotlin
Gaurav sharma
Transitioning Android Teams Into Kotlin
Transitioning Android Teams Into KotlinTransitioning Android Teams Into Kotlin
Transitioning Android Teams Into Kotlin
Garth Gilmour
Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019
Eamonn Boyle

Recently uploaded (20)

SketchUp Pro Crack [2025]-Free Download?
SketchUp Pro Crack [2025]-Free Download?SketchUp Pro Crack [2025]-Free Download?
SketchUp Pro Crack [2025]-Free Download?
kiran10101khan
SolidWorks 2025 Crack free Download updated
SolidWorks 2025 Crack  free Download updatedSolidWorks 2025 Crack  free Download updated
SolidWorks 2025 Crack free Download updated
sanasabaa73
Wondershare Filmora 14.3.2 Crack + License Key Free Download
Wondershare Filmora 14.3.2 Crack + License Key Free DownloadWondershare Filmora 14.3.2 Crack + License Key Free Download
Wondershare Filmora 14.3.2 Crack + License Key Free Download
arshadkhokher01
DevOpsDays LA - Platform Engineers are Product Managers.pdf
DevOpsDays LA - Platform Engineers are Product Managers.pdfDevOpsDays LA - Platform Engineers are Product Managers.pdf
DevOpsDays LA - Platform Engineers are Product Managers.pdf
Justin Reock
How John started to like TDD (instead of hating it) - TED talk
How John started to like TDD (instead of hating it) - TED talkHow John started to like TDD (instead of hating it) - TED talk
How John started to like TDD (instead of hating it) - TED talk
Nacho Cougil
Build the future with Agentforce and Mulesoft
Build the future with Agentforce and  MulesoftBuild the future with Agentforce and  Mulesoft
Build the future with Agentforce and Mulesoft
GiulioPicchi
iTop VPN Latest Version 2025 Crack Free Download
iTop VPN Latest Version 2025 Crack Free DownloadiTop VPN Latest Version 2025 Crack Free Download
iTop VPN Latest Version 2025 Crack Free Download
lr74xqnvuf
LDPlayer 9.1.20 Latest Crack Free Download
LDPlayer 9.1.20 Latest Crack Free DownloadLDPlayer 9.1.20 Latest Crack Free Download
LDPlayer 9.1.20 Latest Crack Free Download
5ls1bnl9iv
EASEUS Partition Master Crack with License Code [Latest]
EASEUS Partition Master Crack with License Code [Latest]EASEUS Partition Master Crack with License Code [Latest]
EASEUS Partition Master Crack with License Code [Latest]
bhagasufyan
Douwan Preactivated Plus Crack 2025-Latest
Douwan Preactivated Plus Crack 2025-LatestDouwan Preactivated Plus Crack 2025-Latest
Douwan Preactivated Plus Crack 2025-Latest
mubeen010khan
AVG Antivirus Crack With Free version Download 2025 [Latest]
AVG Antivirus Crack With Free version Download 2025 [Latest]AVG Antivirus Crack With Free version Download 2025 [Latest]
AVG Antivirus Crack With Free version Download 2025 [Latest]
haroonsaeed605
Lecture-11-AutomatedTesting-software.pptx
Lecture-11-AutomatedTesting-software.pptxLecture-11-AutomatedTesting-software.pptx
Lecture-11-AutomatedTesting-software.pptx
ssuser39f59e
Minitool Partition Wizard Crack Free Download
Minitool Partition Wizard Crack Free DownloadMinitool Partition Wizard Crack Free Download
Minitool Partition Wizard Crack Free Download
v3r2eptd2q
Hire Odoo Developer OnestopDA Experts.
Hire Odoo Developer  OnestopDA Experts.Hire Odoo Developer  OnestopDA Experts.
Hire Odoo Developer OnestopDA Experts.
OnestopDA
20 Excel Shortcuts That Will Instantly Save You Hours.pdf
20 Excel Shortcuts That Will Instantly Save You Hours.pdf20 Excel Shortcuts That Will Instantly Save You Hours.pdf
20 Excel Shortcuts That Will Instantly Save You Hours.pdf
mohammadasim74
SE- Lecture 5 SE for easy understanding.ppt
SE- Lecture 5 SE for easy understanding.pptSE- Lecture 5 SE for easy understanding.ppt
SE- Lecture 5 SE for easy understanding.ppt
theworldimagine985
Cybersecurity & Innovation: The Future of Mobile App Development
Cybersecurity & Innovation: The Future of Mobile App DevelopmentCybersecurity & Innovation: The Future of Mobile App Development
Cybersecurity & Innovation: The Future of Mobile App Development
iProgrammer Solutions Private Limited
Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...
Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...
Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...
Shubham Joshi
AutoDesk Revit Crack | Revit Update 2025 free download
AutoDesk Revit Crack | Revit Update 2025 free downloadAutoDesk Revit Crack | Revit Update 2025 free download
AutoDesk Revit Crack | Revit Update 2025 free download
anamaslam971
Carousel - Five Key FinTech Trends for 2025
Carousel - Five Key FinTech Trends for 2025Carousel - Five Key FinTech Trends for 2025
Carousel - Five Key FinTech Trends for 2025
Anadea
SketchUp Pro Crack [2025]-Free Download?
SketchUp Pro Crack [2025]-Free Download?SketchUp Pro Crack [2025]-Free Download?
SketchUp Pro Crack [2025]-Free Download?
kiran10101khan
SolidWorks 2025 Crack free Download updated
SolidWorks 2025 Crack  free Download updatedSolidWorks 2025 Crack  free Download updated
SolidWorks 2025 Crack free Download updated
sanasabaa73
Wondershare Filmora 14.3.2 Crack + License Key Free Download
Wondershare Filmora 14.3.2 Crack + License Key Free DownloadWondershare Filmora 14.3.2 Crack + License Key Free Download
Wondershare Filmora 14.3.2 Crack + License Key Free Download
arshadkhokher01
DevOpsDays LA - Platform Engineers are Product Managers.pdf
DevOpsDays LA - Platform Engineers are Product Managers.pdfDevOpsDays LA - Platform Engineers are Product Managers.pdf
DevOpsDays LA - Platform Engineers are Product Managers.pdf
Justin Reock
How John started to like TDD (instead of hating it) - TED talk
How John started to like TDD (instead of hating it) - TED talkHow John started to like TDD (instead of hating it) - TED talk
How John started to like TDD (instead of hating it) - TED talk
Nacho Cougil
Build the future with Agentforce and Mulesoft
Build the future with Agentforce and  MulesoftBuild the future with Agentforce and  Mulesoft
Build the future with Agentforce and Mulesoft
GiulioPicchi
iTop VPN Latest Version 2025 Crack Free Download
iTop VPN Latest Version 2025 Crack Free DownloadiTop VPN Latest Version 2025 Crack Free Download
iTop VPN Latest Version 2025 Crack Free Download
lr74xqnvuf
LDPlayer 9.1.20 Latest Crack Free Download
LDPlayer 9.1.20 Latest Crack Free DownloadLDPlayer 9.1.20 Latest Crack Free Download
LDPlayer 9.1.20 Latest Crack Free Download
5ls1bnl9iv
EASEUS Partition Master Crack with License Code [Latest]
EASEUS Partition Master Crack with License Code [Latest]EASEUS Partition Master Crack with License Code [Latest]
EASEUS Partition Master Crack with License Code [Latest]
bhagasufyan
Douwan Preactivated Plus Crack 2025-Latest
Douwan Preactivated Plus Crack 2025-LatestDouwan Preactivated Plus Crack 2025-Latest
Douwan Preactivated Plus Crack 2025-Latest
mubeen010khan
AVG Antivirus Crack With Free version Download 2025 [Latest]
AVG Antivirus Crack With Free version Download 2025 [Latest]AVG Antivirus Crack With Free version Download 2025 [Latest]
AVG Antivirus Crack With Free version Download 2025 [Latest]
haroonsaeed605
Lecture-11-AutomatedTesting-software.pptx
Lecture-11-AutomatedTesting-software.pptxLecture-11-AutomatedTesting-software.pptx
Lecture-11-AutomatedTesting-software.pptx
ssuser39f59e
Minitool Partition Wizard Crack Free Download
Minitool Partition Wizard Crack Free DownloadMinitool Partition Wizard Crack Free Download
Minitool Partition Wizard Crack Free Download
v3r2eptd2q
Hire Odoo Developer OnestopDA Experts.
Hire Odoo Developer  OnestopDA Experts.Hire Odoo Developer  OnestopDA Experts.
Hire Odoo Developer OnestopDA Experts.
OnestopDA
20 Excel Shortcuts That Will Instantly Save You Hours.pdf
20 Excel Shortcuts That Will Instantly Save You Hours.pdf20 Excel Shortcuts That Will Instantly Save You Hours.pdf
20 Excel Shortcuts That Will Instantly Save You Hours.pdf
mohammadasim74
SE- Lecture 5 SE for easy understanding.ppt
SE- Lecture 5 SE for easy understanding.pptSE- Lecture 5 SE for easy understanding.ppt
SE- Lecture 5 SE for easy understanding.ppt
theworldimagine985
Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...
Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...
Mastering Software Test Automation: A Comprehensive Guide for Beginners and E...
Shubham Joshi
AutoDesk Revit Crack | Revit Update 2025 free download
AutoDesk Revit Crack | Revit Update 2025 free downloadAutoDesk Revit Crack | Revit Update 2025 free download
AutoDesk Revit Crack | Revit Update 2025 free download
anamaslam971
Carousel - Five Key FinTech Trends for 2025
Carousel - Five Key FinTech Trends for 2025Carousel - Five Key FinTech Trends for 2025
Carousel - Five Key FinTech Trends for 2025
Anadea

Kotlin's Interoperability with Java

  • 1. NEW BEST FRIENDS: Kotlins Interoperability with Java Presented by: David Greenhalgh
  • 2. TODAYS FORMAT Housekeeping/Intro Kotlin Talk by David Live Q&A Lunch & Learn / Book Giveaway
  • 3. BIG NERD RANCH Travel to your of鍖ce Discuss Kotlin Enjoy lunch!
  • 4. BUILD BRILLIANCE BIG NERD RANCH Immersive BOOTCAMPS Onsite TEAM TRAINING THE FRONTIER subscription Digital PRODUCT DEVELOPMENT 4
  • 7. BIG NERD RANCH Travel to your of鍖ce Discuss Kotlin Enjoy lunch!
  • 9. Why Kotlin? Concise Pragmatic Flexible Type-safe Why Kotlin? Concise Pragmatic Java person.getName(); Kotlin person.name
  • 10. Why Kotlin? Type-safe Objects may not hold null values unless declared using a nullable type String may not be null String? may be null Why Kotlin? Full interoperability with Java
  • 11. Interoperability Kotlin code and Java code works together directly Call Java methods from Kotlin Call Kotlin functions from Java The Kotlin Compilation Process Kotlin compiles down to Java bytecode
  • 13. Interoperability Kotlin code and Java code works together directly Leverage legacy Java frameworks (e.g. Android) Gradually transition your codebase from Java to Kotlin An Example Calling a Java method from Kotlin Nullability and platform types Accessing Java 鍖elds from Kotlin Type mapping Kotlin 鍖le anatomy
  • 14. A Java Method public class Jhava { public String utterGreeting() { return "BLARGH"; } } Calling a Java Method from Kotlin fun main(args: Array<String>) { val adversary = Jhava() println(adversary.utterGreeting()) }
  • 15. Another Java Method public class Jhava { public String utterGreeting() { return "BLARGH"; } public String determineFriendshipLevel() { return null; } } Platform Type
  • 16. NullPointerException in Kotlin fun main(args: Array<String>) { ... val friendshipLevel = adversary.determineFriendshipLevel() println(friendshipLevel.toLowerCase()) } Nullability Annotations public class Jhava { @NotNull public String utterGreeting() { return "BLARGH"; } @Nullable public String determineFriendshipLevel() { return null; } }
  • 17. IntelliJ Nullable Type Awareness Java Field with Getter and Setter public class Jhava { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
  • 18. Property Reference from Kotlin fun main(args: Array<String>) { Jhava().name } Type Mapping Some Kotlin types map directly to Java types String to String
  • 19. Type Mapping Other Kotlin types do not map directly to Java types Kotlin's Int to Java's int Primitive Types Java represents basic data types using "primitve types" (non-objects) Kotlin represents all data using objects
  • 20. Integers in Kotlin fun main(args: Array<String>) { val adversary = Jhava() val adversaryHitPoints: Int = adversary.hitPoints adversaryHitPoints.dec() println(adversaryHitPoints.javaClass) } >>> int Kotlin File Anatomy Java 鍖les contain exactly one class Kotlin 鍖les may contain classes, functions, and variables at top-level How can you call standalone Kotlin functions from Java?
  • 21. A Standalone Kotlin Function (Hero.kt) fun main(args: Array<String>) { ... } fun makeProclamation() = "Greetings, beast!" Calling a File-level Function from Java public static void main(String[] args) { System.out.println(HeroKt.makeProclamation()); }
  • 22. Customizing Class Name (Hero.kt) @file:JvmName("Hero") fun main(args: Array<String>) { ... } fun makeProclamation() = "Greetings, beast!" Using the Customized Class Name public static void main(String[] args) { System.out.println(Hero.makeProclamation()); }
  • 23. Customizing Compiled Java Code JVM annotations exist to customize the Java code that is compiled from your Kotlin source @JvmName @JvmOverloads @JvmStatic @JvmField Refrain: Your Upgrade Path Kotlin compiles down to Java bytecode
  • 24. Risks of Sticking with Java Slow moving language development Less type-safe Less concise Less interest from developers Next Steps Start a new project in Kotlin Upgrade selectively Acquire Kotlin resources