Tương đương Java của những đặc điểm này trong Scala là gì?Java tương đương với mã Scala này là gì?
trait Visitor {
type X
type S<:Strategy
type R[v<:Visitor] = (S{type X = Visitor.this.X;type V=v})#Y
}
trait Strategy {
type V<:Visitor
type X
type Y
}
tôi dịch Strategy
đặc điểm để:
public interface Strategy<V extends Visitor<?, ?, ?>, X, Y> {
}
tôi cố gắng dịch đặc điểm Visitor
tới:
public interface Visitor<X, S extends Strategy<?,?, ?>, R ?????> {
}
Như bạn thấy, tôi không biết làm thế nào để hiểu/dịch nhập R
trong đặc điểm Visitor
. Tương đương Java tương tự là gì?
Có lẽ chúng tôi có thể xác định giao diện thứ ba 'giao diện R <.....>' và sử dụng điều này trong Tổng quan khách truy cập? – Stuck
Tôi nghi ngờ nó, nó sẽ là một lớp hoàn toàn khác sau đó. Đoạn mã trên ở Scala không tạo ra gì ngoài 'Visitor' và' Strategy'. Ngoài ra tôi không nghĩ rằng nó có thể mã hóa giá trị mặc định cho các thành viên kiểu trừu tượng (có thể một cái gì đó dựa trên chuyên môn generics một phần sẽ làm việc, như 'giao diện A {}, giao diện B mở rộng A {}', nhưng tôi nghi ngờ nó quá). Dù bằng cách nào, hệ thống kiểu Java cũng không đủ mạnh để thể hiện các khái niệm này. –