我遇到了一個練習,但我不是 Java 大師,不知道如何實作它。我的目標是實作一個具有 getter 和 setter 方法的通用介面。在 It's 建構式中,我必須放置一個實作此通用介面的 s 物件。我們必須在我們的類中存盤這個物件,并使用這個類的 getter 和 setter 來實作我們的類 getter 和 setter(委托)。
public class Threads<T> implements Buffer<T>{
Object s;
public Threads(Object s) { // we know, that It implements our Buffer interface
this.s=s;//i have no clue to what I should convert it.
}
synchronized public void put(T t) {
//i don't know how to call s's put method
}
synchronized public T get() {
//I don't know how to call s's get method.
}
}
我的問題是:我如何處理上面代碼中我在評論中指出我不知道該寫什么的部分?
有任何想法嗎?
uj5u.com熱心網友回復:
我認為您所指的“它”是s引數。
您需要使用 type宣告s引數和s欄位Buffer<T>。像這樣的東西:
public class Threads<T> implements Buffer<T>{
Buffer<T> s;
public Threads(Buffer<T> s) {
this.s = s;
}
synchronized public void put(T t) {
s.put(t);
}
synchronized public T get() {
return s.get();
}
}
此時,您已經為Buffer<T>. 但是對于使用包裝器方法執行的操作來說,它只是執行緒安全的。
(這個Buffer<T>類/介面必須是你自己設計的東西。標準java.nio.Buffer類沒有引數化,它不提供get和put方法。子類java.nio.Buffer確實有get和put方法,但它們在型別上不相關等級。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/349078.html
上一篇:Java中多執行緒等待通知示例中的執行緒連接(1)用法
下一篇:無法從其他執行緒添加串列項
