2014-02-09 4 views
3

NotNull 특성이 사용되지 않으므로 클래스를 nullable로 선언 할 수있는 새로운 최선의 방법은 무엇입니까?스칼라에서 notnull의 클래스를 확인 하시겠습니까?

여전히 컴파일러 옵션이 있습니다 (누군가 다른 프로젝트에서 내 라이브러리를 잘못 사용하는 것을 방지하지 않음). 소수의 충돌하는 Java 주석과 함께 Scala 컴파일러가 존중할 것입니다.

+0

ScalaDoc 및 소스 코드 (2.10.x 용)는 'NotNull'이 사용되지 않음을 나타냅니다. –

+0

@RandallSchulz 2.11 이후에는 사용되지 않습니다 (아직 출시되지 않음). – Jesper

답변

2

스칼라에서는 null을 사용하지 않아야하며 그렇지 않으면 NotNull 특성을 사용할 필요가 없습니다.

"값 없음"을 가질 수있는 값 또는 변수가있는 경우 null 값 대신 Option 유형을 사용하십시오. Option에는 SomeNone이라는 두 개의 하위 클래스가 있습니다.

// text is "None", which means it has no value 
var text: Option[String] = None 

// Use "Some" when it should have a value 
text = Some("Hello World") 

Option에는 많은 유용한 방법이 있습니다. 그것은 (어느 정도) 제로 또는 하나의 요소를 가진 콜렉션으로 취급 될 수 있으므로, 콜렉션 메소드를 호출 할 수 있고 패턴 매칭과 함께 사용할 수 있습니다.

text match { 
    case Some(s) => println("Text: " + s) 
    case None => println("Empty") 
} 
+1

Java에서 null을 사용하지 않습니다. 다른 사람들이 null을 사용하지 못하도록하고 싶습니다. – user833970

+0

'null'을 사용하는 것은 관용적 인 스칼라가 아니기 때문에 일반적으로 스칼라 프로그래머는 'null'을 사용하지 않습니다. – Jesper

+5

버그를 생성하는 것은 관용적이지 않습니다.하지만 스칼라가 여전히 발생합니다. –