Tôi muốn tận dụng cảnh báo mà vấn đề Scala khi thiếu khớp ("không đầy đủ") - để tôi không quên một (tôi có hàng chục). Ví dụ đơn giản sau đây cho thấy nỗ lực của tôi:Kết hợp mẫu Scala tiếp tục nói rằng "khớp không đầy đủ!"
sealed case class MESSAGE()
class SUCCESS_MESSAGE extends MESSAGE
class FAILURE_MESSAGE extends MESSAGE
def log(str: String, msgType: MESSAGE) {
msgType match {
case t:SUCCESS_MESSAGE => println("FAILURE: " + str)
case t:FAILURE_MESSAGE => println("SUCCESS: " + str)
}
}
Vấn đề là nó nói "khớp không đầy đủ!" mặc dù tất cả các kết hợp có thể được liệt kê. Nếu tôi đặt "trường hợp _ =>" vào đó, toàn bộ điểm cảnh báo sẽ bị vô hiệu vì tôi có thể thêm
class INFO_MESSAGE extends MESSAGE
và không có cảnh báo nào được phát hành.
Có giải pháp nào không?
SUCCESS_MESSAGE nên in "THẤT BẠI:", là bạn khá chắc chắn? –
Tôi khuyên bạn nên chống lại việc mở rộng một trường hợp trong bất kỳ trường hợp nào. Chỉ là FYI. – jsuereth