Trong mã sau bằng cách sử dụng 2.10.0M3 trong plugin Eclipse 2.1.0 cho 2.10M3. Tôi đang sử dụng các thiết lập mặc định được nhắm mục tiêu JVM 1,5Loại trả về phụ thuộc vào đường dẫn Scala từ tham số
class GeomBase[T <: DTypes] {
abstract class NewObjs {
def newHex(gridR: GridBase, coodI: Cood): gridR.HexRT
}
class GridBase {
selfGrid =>
type HexRT = HexG with T#HexTr
def uniformRect (init: NewObjs) {
val hexCood = Cood(2 ,2)
val hex: HexRT = init.newHex(selfGrid, hexCood)// won't compile
}
}
}
Thông báo lỗi:
Description Resource Path Location Type type mismatch;
found: GeomBase.this.GridBase#HexG with T#HexTr
required: GridBase.this.HexRT (which expands to) GridBase.this.HexG with T#HexTr GeomBase.scala
Tại sao biên dịch nghĩ rằng phương pháp này sẽ trả về chiếu loại GridBase # HexG khi nó phải được ví dụ cụ thể này của GridBase?
Chỉnh sửa được chuyển sang lớp mã đơn giản hơn để phản hồi nhận xét hiện nhận được thông báo lỗi khác.
package rStrat
class TestClass {
abstract class NewObjs {
def newHex(gridR: GridBase): gridR.HexG
}
class GridBase {
selfGrid =>
def uniformRect (init: NewObjs) {
val hex: HexG = init.newHex(this) //error here
}
class HexG {
val test12 = 5
}
}
}
.
Error line 11:Description Resource Path Location Type
type mismatch; found : gridR.HexG required: GridBase.this.HexG
possible cause: missing arguments for method or constructor TestClass.scala /SStrat/src/rStrat line 11 Scala Problem
Cập nhật tôi đã chuyển sang 2.10.0M4 và cập nhật các plug-in cho phiên bản M4 trên một phiên bản mới của Eclipse và chuyển sang JVM 1.6 (và 1.7) nhưng vấn đề là không thay đổi.
bạn có thể vui lòng thêm ví dụ về mã hoạt động tạo thông báo lỗi không? – sschaef
Bạn nên dán dòng mã nguồn có lỗi và mũi tên trỏ đến vị trí chính xác của lỗi cũng được hiển thị. –
@Antoras đã chỉnh sửa –