사용 이유

value class Password(private val s: String)
@JvmInline
value class Person(private val fullName: String) {
		init {
				require(fullName.isNotEmpty()) {
						"Full name shouldn't be empty"
				}
		}

constructor(firstName: String, lastName: String) : this("$firstName $lastName") {
    require(lastName.isNotBlank()) {
        "Last name shouldn't be empty"
    }
}

val length: Int
    get() = fullName.length

fun greet() {
    println("Hello, $fullName")
}
}

fun main() {
		val name1 = Person("Kotlin", "Mascot")
		val name2 = Person("Kodee")
		name1.greet() // the `greet()` function is called as a static method
		println(name2.length) // property getter is called as a static method
}

kotlin 1.9부터

inline class

https://kotlinlang.org/docs/inline-classes.html

https://velog.io/@dhwlddjgmanf/Kotlin-1.5에-추가된-value-class에-대해-알아보자