클래스에서 패턴 일치를 수행해야합니다. 문제는 Long과 일치하는 문제가 있다는 것입니다.스칼라 : 패턴 일치 방법 scala.Long 및 java.lang.Long
같은 방식으로 scala.Long과 java.lang.Long을 처리해야하지만 왜 두 경우 모두 선언해야합니까?
def test(typ: Class[_]) {
typ match {
case q if q == classOf[Long] => println("scala long...")
}
}
val scalaLongField: java.reflect.Field = ......
val javaLongField: java.reflect.Field = ......
test(scalaLongField.getType) // prints "scala long..."
test(javaLongField.getType) // scala.MatchError: class java.lang.Long (of class java.lang.Class)
인스턴스 있었으나 결국 수업을하지 않고 그들에게 동일하게 처리 할 수있는 방법이 있나요 : 여기
은 예입니다? 그것은 바로 작동합니다
값이있는 경우에만! 나는 수업을 할 때만 작업 할 필요가 있습니다. 질문에서 말했듯이 "인스턴스가 없어도 수업을 처리 할 수있는 방법이 있습니까?" – maklemenz
@mklemenz 당신은 당신이 원하는 것을 정확하게 당신의 예제를 제한하는 역할을 할 것입니다. 샘플 메소드의 대다수 (2/3)는 값을 가지며 오직 하나만 클래스를가집니다. –
질문을 수정했습니다. – maklemenz