//kotlin
val names: List<String>
val entries: Map<String, String>
제네릭클래스에 타입을 넣지 않고 선언이 가능한 자바와 달리, 코틀린은 반드시 타입을 넣어 주어야 한다. -> 컴파일에러
//java
//List<Object>로 암시적으로 선언됨.
List names;
//kotlin
//컴파일 에러
val names: List
제네릭을 사용하는 클래스나 인터페이스를 정의하는 방법도 자바와 동일하다.
//java
class Car {
...
}
//항목을 담거나 뺄 수 있는 지네릭 인터페이스 정의
interface Container<T> {
void put(T item);
T take();
}
class Garage implements Container<Car> {
@Override
public void put(Car item) {
...
}
@Override
public Car take() {
...
}
}
//kotlin
class Car {
...
}
interface Container<T> {
fun put(item: T)
fun take(): T
}
class Garage: Container<Car> {
override fun put(item: Car) {
...
}
override fun take(): Car {
...
}
}