2012-11-19 4 views
5

다음과 같은 문제가 있습니다. 우리는 (자바 코드 만 작성하는 멤버와 함께) 공유 된 scala-java-project가 있으므로 하나의 목적으로 Java 열거 형을 사용합니다. 하지만이 스칼라에서 스칼라에서 패턴 매칭을 수행하고 자바 스위치가 실제로 enum을 사용할 수 있으므로 @switch로 최적화하려고합니다.@switch를 사용하여 Java 열거 형의 스칼라 패턴 일치 최적화

그러나 컴파일러는 불평 :

tiletype이 열거 형 값 중 하나를 포함하는 필드
error: could not emit switch for @switch annotated match 
(args.tileType: @switch) match { 

. 코드를 최적화하는 방법을 수정 하시겠습니까?

답변

2

자바를 사용합니다.

스칼라에는 Java enums를 읽는데 필요한 최소한의 정보 만 포함되어 있습니다. 현재 스칼라에서 (2.10까지) 생성하거나 최적화하여 사용할 수 없습니다.

+0

글쎄, 이것이 사실이라면 성능이 정말로 중요 해지면 Java를 사용할 것입니다. – DerWaldschrat

+0

enum에서 함수로 해시 맵을 생성하고 목록이 엄청나게 길어질 때 스위치를 그렇게 할 수 있습니다. 매번지도를 만들 필요가 없도록 정리할 수 있다고 가정합니다. –