Re: [問題] 將callback轉型成原本的class
※ 引述《bleed1979 (十三)》之銘言:
: 可惡,我的國文開始爛了。
: 原po的意思是指
: List<String> list = new ArrayList<String>();
: 和
: ArrayList<String> al = new ArrayList<String>();
: 嗎??
: 還是請原po舉幾個例子??
Public class A {
private String mName;
private int mAge;
public A(String name , int age){
//略
}
public get(){
//略
}
public set(){
//略
}
public void print(){
//print something
}
我想要強調的是這個Class A 有public 的 getter & setter
今天我預設之下把Class A 的instance pointer 給某個Class B 使用是允許的。
可是很不巧某個Class C 也會用到 Class A 的某些public method 或是額外的東西,
只不過這個Class C 我不希望他會去使用到Class A 的 getter & setter,也就是說我不
希望Class C 透過 getter & setter動到我 Class A 的某些東西。
我過去要完成這樣的想發都是先寫一個 interface
public interface SpecialCallback{
public void doSomethingSpecial();
}
然後
public class A implements SpecialCallback{
//略
}
在 Class C 裡面藏一個 field
public class C {
private SpecialCallback mCallback;
public C (SpecialCallback callback){
this.mCallback = callback;
}
public void method(){
.
.
mCallback.doSomethingSpecial();
.
.
}
}
然後 new C的時候把 A 的instance pointer帶進去
我的問題在於說如果Class C知道SpecialCallback 所帶進來的東西是Class A
cast一下,那我前面寫的東西不就做白工了...??
//-----------------------------------------------------------------------
不過昨天我有找到另外一種方法
在 Class A寫一個 getCallback()
然後在裡面new 一個Specialcallback 並實做完再return 回去
new Class C 的時候餵的是 instanceA.getCallback()就好了
不曉得這個方法是否正確?
希望我描述的夠清楚@_@
--
If a child on the street who has nothing is willing to share,
why are we who have everything still so greedy?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 106.1.108.108
※ 編輯: liu2007 來自: 106.1.108.108 (10/14 12:44)
推
10/14 12:53, , 1F
10/14 12:53, 1F
→
10/14 12:54, , 2F
10/14 12:54, 2F
→
10/14 12:56, , 3F
10/14 12:56, 3F
推
10/14 13:04, , 4F
10/14 13:04, 4F
→
10/14 13:22, , 5F
10/14 13:22, 5F
→
10/14 13:26, , 6F
10/14 13:26, 6F
→
10/14 13:38, , 7F
10/14 13:38, 7F
→
10/14 15:05, , 8F
10/14 15:05, 8F
→
10/14 17:44, , 9F
10/14 17:44, 9F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章