Android

[패스트캠퍼스] Kotlin vs JAVA

an-hayyy 2023. 1. 3. 11:16

1. Null Safe

 

2. Scope Function (apply, with, let, also, run)

 - Apply 함수 (주로 객체를 초기화할 때)

val person = Person().apply{
 firstName = "Fast"
 lastName = "Campus"
}


Person person = new Person();
person.fistName = "Fast";
person.lastName = "Campus";

 

 -  Alos 함수 (객체의 유효성을 확인하거나 프린트 함수로 디버깅할 때)

Random.nextInt(100).also{
 print("getRandomInt() generated value $it")
}


Random.nextInt(100).also{ value ->
 print("getRandomInt() generated value $value")
}


int value = Random().nextInt(100);
System.out.print(value);

 

 - Let 함수 (객체에서 람다를 실행할 때)

val number: Int?
val sumNumberStr = number?.let{
 "${sum(10,it)}"
}


Integer number = null;
String sumNumberStr = null;
if(number != null){
 sumNumberStr = " " + sum(10, number);
}


val number: Int?
val sumNumberStr = number?.let{
 "${sum(10, it)}"
}.orEmpty()


Integer number = null;
String sumNumberStr = null;
if(number != null){
 sumNumberStr = " " + sum(10, number);
} else {
 sumNumberStr = " ";
}

 

 -  With 함수

val person = Person()
with(person){
 work()
 sleep()
 println(age)
}


Person person = new Person();
person.work();
person.sleep();
System.out.println(person.age);

 

 - Run 함수

val result = service.run{
 port = 8080
 query()
}


service.port = 8080
Result result = service.query()

 

3. Data Class (데이터를 저장하는 목적으로 만든 클래스)

 

4. Lambda expression

button.setOnClickListener(new View.OnclickListener() {
 @Override
 public void onClick(View view){
  ,,,
 }
})


button.setOnClickListener{ v ->

}

 

5. lateinit, lazy init

var nullableNumber: Int? = null
lateinit var lateinitNumber: Int

// 추후 초기화하는 코드
lateinitNumber = 10

// 사용할 때
nullableNumber?.add()
lateinitNumber.add()
val lazyzNumber :Int by lazy{
 100
}

// 사용하기 전까지는 lazyNumber 라는 변수에 100 이 할당되지 않음.

lazyNumber.add()
// 사용할 때 100이 할당됨

'Android' 카테고리의 다른 글

[패스트캠퍼스] 코틀린 문법 훑어보기  (0) 2023.01.02
[Android] Handler  (0) 2021.09.02
[Android] CallBack  (0) 2021.06.08
[Android] 라이브러리 만들기  (0) 2021.06.07
[JAVA] 싱글톤(Singleton) 패턴  (0) 2021.04.11