Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Adapter 패턴
- play 강좌
- 그라파나
- Play2 로 웹 개발
- CORDA
- 파이썬 머신러닝
- 파이썬 강좌
- 하이브리드앱
- 안드로이드 웹뷰
- 스위프트
- 파이썬 데이터분석
- 스칼라
- Actor
- hyperledger fabric
- 이더리움
- Golang
- 파이썬
- 하이퍼레저 패브릭
- Hyperledger fabric gossip protocol
- 스칼라 강좌
- 플레이프레임워크
- Play2
- akka 강좌
- play2 강좌
- Akka
- 주키퍼
- 파이썬 동시성
- 블록체인
- 스칼라 동시성
- 엔터프라이즈 블록체인
Archives
- Today
- Total
HAMA 블로그
스칼라 강의 (44) - 리플렉션 본문
스칼라 리플렉션
참고: http://3x14159265.tumblr.com/post/57543163324/playing-with-scala-reflection
리플렉션에 대해서 생소하다면 먼저 자바 리플렉션 관련 읽을 거리를 읽어보세요.
1. 자바 클래스로더 이야기
2. 자바 리플렉션 사용하기
스칼라 2.10에서 새로운 리플렉션 API 가 소개되었습니다.
리플렉션으로 보통 우리는
- 제네릭 타입을 포함하여 객체의 타입을 조사한다.
- 런타임에 클래스(파일 혹은 네트워크를 통해서 전해온 바이트를 통해) 객체를 생성한다.
- 그 객체의 메소드를 호출한다.
를 할 수 있게 됩니다.
하나씩 살펴 볼까요? 먼저 아래와 같이 임포트 해줍니다.
객체와 클래스들은 런타임에 클래스로더와 runtime mirror 를 이용하여 인스턴스화 될 수 있습니다.
객체와 클래르 생성이 약간 다릅니다.
다음과 같은 object 가 있다고 가정 하면 (파일로 있어도 되고, 바이트 배열로 있어도 된다)
런타임에 이 object 의 메소드를 호출 할 수 있습니다. (즉 원격에서 클래스를 가져와서 호출해 줄 수도 있다는 의미. 예를들어 분산 컴퓨팅시 동일한 작업을 여러 컴퓨터에서 분산 시켜서 하고자 할 때도 사용 될 수 있겠지요.)
물론 스칼라의 새 리플렉션 API 는 훨씬 더 많은 것을 포함하고 있습니다. 다음 문서를 참고하세요. scala docs.
'Scala' 카테고리의 다른 글
스칼라 강의 (46) 리프팅(lifting) 이란? (0) | 2017.11.09 |
---|---|
스칼라 강의 (45) 빌드(build) & 디플로이 (deploy) 하기 [번역] (0) | 2017.11.06 |
스칼라 강의 (43) - 고급 타입관련 주제들 (0) | 2017.03.26 |
스칼라 강좌 (42) 고급 타입 다루기 - F-bounded polymorphism / recursive types (0) | 2017.03.26 |
스칼라 강좌 (41) Try 예외처리 (0) | 2017.02.27 |
Comments