Tôi có nhiều phương pháp mà trả về một java.lang.Integer, sau đó được ngầm chuyển đổi thành một Int sử dụng Predef chuyển đổi tiềm ẩn của Scala, đây là cách nó được viết there:Override chuyển đổi tiềm ẩn Predef của
implicit def Integer2int(x: java.lang.Integer): Int = x.intValue
này chuyển đổi không được thỏa mãn với tôi, tôi muốn một cái gì đó dọc theo dòng:
implicit def Integer2int(x: java.lang.Integer): Int =
Option(x).getOrElse(new Integer(0)).intValue
như Integer
đôi khi có thể null
và trong trường hợp đó lợi nhuận chuyển đổi ngầm Predef của thành vô giá trị và tôi cũng sẽ l thay vào đó là 0.
Tôi đã viết chuyển đổi của riêng mình nhưng tôi vẫn nhận được lỗi nói rằng tuyên bố này là mơ hồ vì nó đã được khai báo trong Predef.
Câu hỏi của tôi là, có cách nào thực sự ghi đè chuyển đổi tiềm ẩn của Predef không?
này hoạt động tốt, chỉ là một nhận xét: Khi làm việc nhập khẩu bên trong một đối tượng, những gì bạn đề nghị công trình, tuy nhiên, nếu bạn cần phải làm điều này bên ngoài một đối tượng, bạn cần phải viết nó theo cách này: 'import scala.Predef. {Integer2int => _, _}' – Peter
@Peter, bạn nói đúng, đó là một nhận xét quan trọng. – tkroman