I am primarily an Android developer but the same rules should also apply to standard Java and Kotlin I suppose.
What is criteria between choosing as<