Tôi muốn xác định một lớp ContextItem
là phần mở rộng của lớp java Predicate
với một đặc điểm Confidence
.Mở rộng lớp Java với Scala Trait
Tự tin là một đặc điểm đơn giản, chỉ cần thêm trường tin cậy vào bất kỳ trường nào mở rộng.
trait Confidence{
def confidence:Double
}
Tôi xác định lớp ContextItem
của tôi bằng cách đơn giản nêu:
class ContextItem extends Predicate with Confidence{}
Nhưng cố gắng để biên dịch lãi suất này ...
com/slug/berds/Berds.scala:11: error: overloaded method constructor Predicate with alternatives:
(java.lang.String,<repeated...>[java.lang.String])com.Predicate <and>
(java.lang.String,<repeated...>[com.Symbol])com.Predicate <and>
(java.lang.String,java.util.ArrayList[com.Symbol])com.Predicate <and>
(com.Predicate)com.Predicate <and>
(com.Term)com.Predicate <and>
(java.lang.String)com.Predicate
cannot be applied to()
class ContextItem(pred:Predicate) extends Predicate with Confidence{
^
Điều này có vẻ giống như một ví dụ nhỏ, vì vậy những gì đang diễn ra sai rồi?
Predicate (mà không phải là mỏ) trông giống như:
/** Representation of predicate logical form. */
public class Predicate extends Term implements Serializable {
public Predicate(String n) {
super(n);
}
public Predicate(Term t) {
super(t);
}
public Predicate(Predicate p) {
super((Term)p);
}
public Predicate(String n, ArrayList<Symbol> a) {
super(n, a);
}
public Predicate(String n, Symbol... a) {
super(n, a);
}
public Predicate(String n, String... a) {
super(n, a);
}
@Override
public Predicate copy() {
return new Predicate(this);
}
}
Cả Predicate hay bất kỳ của tổ tiên nó thực hiện sự tự tin.
Chúng ta có thể thấy lớp 'Predicate' không? Nó có thực hiện phương thức 'tự tin' không? – Nick