Generic
List와 Future를 공부하며 Generic을 본적이있다.
<> 를 사용하였고 타입 매개변수를 지정했다.
타입 매개변수
다시 예제를 보면 Manager이라는 클래스는 타입 매개변수로 을 선언하였다.
그렇다면 Person 클래스와 Person 자식 클래스가 실제 타입의 매개변수가 될수있다.
Generic은 클래스뿐만 아니라 메서드에서도 사용 가능하며 메서드의 리턴타입 매개변수를 제네릭으로 설정할 수 있다.
(실제 적용화면)
해당 로직은 Flutter에서 api를 받아오는 로직이다.
Result와 SearchModel을 모두 사용하기 때문에 제네릭으로 타입설정을했다.
굳이 안써도 되지만 이런게 많아진다면 컴파일 딴에서 처리해야 할게 많아진다.
제네릭을 설정해주면, SearchModel과 Result를 벗어난 대입값에서 에러가 발생해 코드 오류를 미연에 방지할 수 있다.
List list = [];
어떤 타입이 와도 상관없는 Dynamic Type으로 되어있다.
개발자는 최초의 int만 들어올수있는 List이다 라고 하면
List<int> list =[];
List.add('Value');
List를 이렇게 int타입만 들어오게 설정을 해놓으면 Value는 String 이라 들어오지 못한다.
개발자의 실수를 방지할 수 있다.