Most common cause of crashes
var someDude:Person = Person()
someDude = null //will not compile
var someDude:Person? = Person()
someDude = null //compiles
someDude?.name = "New Hero"
if(someDude != null) {
someDude.name = "New Hero"
}var someDude:Person? = Person()
someDude = null //compiles
//only works if not null
someDude?.name = "New Hero" data class Person(var name:String, var age:Int, var address:String,
var career:String){
//declare secondary constructor with default values
constructor():this("", 0, "", "")
}public class Person {
String name;
String address;
String career;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCareer() {
return career;
}
public void setCareer(String career) {
this.career = career;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
fun addPerson(){
person.address = "Lagos"
person.age = 75
person.career = "repair man"
person.name = "Smile"
}with, let & apply
var person : Person? = Person()
//executes if not null
person?.let {
name = "The flash"
age = 27
address = "central city"
career = "Super hero"
} var per = Person()
with(per){
name = "The flash"
age = 27
address = "central city"
career = "Super hero"
}var person = Person().apply {
name = "The flash"
age = 27
address = "central city"
career = "Super hero"
}