나는이 두 매개 변수를 취하는 스칼라 방법 : ... 내가 널 대신 긴의 전달해야 할 몇 가지 경우에 따라 그런 일패스는 기대하고 긴
def test(x:Long,y:Int){}
을 :
test(null,x)
을
는 그 결과
scala> test(null,2) :7: error: type mismatch; found : Null(null) required: Long test(null,2)
가 왜 null을 전달해야합니까? 사실, 어떤 이유로 든 기본값을 전달할 수 없습니다. 따라서 이러한 null이 필요합니다.
* 참고 : * 솔루션으로 옵션을 만들 수 있음을 알고 있습니다. 그러나이 메서드 시그니처를 제어 할 권한이 없다고 가정 해 봅시다. 해결 방법은 있습니까?
아이디어가 없습니다.
감사합니다.
또한 사용할 수 java.lang.Long의/더블/정수를 허용하는 메소드를 호출하는 경우 만 작동합니다 문자 그대로의 널 (null)을 통과 java.lang.Long의 – thoredge
스칼라의 'Long'은 사실 JVM 원시 타입'long'에 매핑됩니다. 그래서 원시 타입은'null '이 될 수 없기 때문에 Scala'Long'은'null'이 될 수 없습니다. (스칼라를 혼동하지 마십시오.Long'과'java.lang.Long'!). – Jesper
여기서 문제는 jdbc가 java이고 데이터베이스가 nullable long에 대해 null 값을 저장한다는 것입니다. 스칼라 시스템에서 0L로 전달하면 문제가 있는지 묻습니다. –