728x90
반응형

오류

error: scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.

 

원인

scala 2.11  버전과 java SDK 버전이 맞지 않아 발생하는 오류

 

해결방법

scala 버전에 맞게 java SDK를 8 버전으로 바꾼다.

나의 경우 9버전이었다.

728x90
반응형
728x90
반응형

Thread 몇개로 돌리는 애플리케이션이 있다.

어떤 thread가 어떤 작업을 하는지 알고싶었다. 그래서 thread id 찍어보고 싶은데 어떻게 찍는지 몰라서 찾아봄

val threadId = Thread.currentThread.getId

 

생각보다 많이 간단...!

728x90
반응형
728x90
반응형

문자열 split 방법

val s = "aa bb cc"
val splited = s.split(" ")


일반적인 split은 위와 같이 하면 된다.


dot(.)이 포함된 문자열을 split 하려고 했는데 안된다.
아래와 같이 하면 된다.

val s = "aa.bb.cc"
val splited = s.split("\\.")



dot(.)은 자바 정규식 예약어이기 때문에 \(back slash)가 필요한데 \ 자체도 예약어이기 때문에 \\ 두번 붙여야 한다.

728x90
반응형
728x90
반응형


Scala best practices에 따르면 sequence(list, map 등) 으로부터 head를 뽑을 때 `head` 보다는 `headOption` 사용을 권장

Seq.empty[Int].head
-> head of empty list exception 발생

headOption은 sequence의 head를 뽑아내는 좀 더 안전한 방법!
Seq(1, 2, 3).headOption
// res0: Option[Int] = Some(1)

Seq.empty[Int].headOption
// res1: Option[Int] = None

exception 방지를 위해서는 None이 아닌 조건을 넣으면 될듯

728x90
반응형
728x90
반응형

변수 이름이 'type' 이어야 하는 경우가 생겼다.

Json 파싱 해야하는데 key 이름이 'type'이다. 난감..

스칼라는 대소문자를 구분하니 'type'의 t라도 대문자였으면 문제가 없는데...

알아보니 backticks(`) 를 쓰면 된다!

 

아래와 같이 사용하면 된다는 것!

var `type` = 10


case class Policy (
		Name:		String,
                `type`: 	String,
                Versions: 	Int )
728x90
반응형

+ Recent posts