JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:請問這種情況如何使用泛型 [Re:avseq]
kentyeh





發文: 643
積分: 6
於 2010-05-15 01:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
泛型只是用來減少型別轉換的工作罷了,並無法替您決定該建立什麼樣的型別,
常用的範例比如說 加法這件事, Integer +Integer 回傳 Integer,
Float + Float 回傳 Float ,不同的數字型別回傳不同的 加法結果就很適用。
1
2
3
public static <T> add(T o1,T o2){
  return o1+o2;
}
T 甚至可以是自定的 Roman(羅馬字) 型別,
但是Compiler就是沒法替您決定 T 是 Integer 還是 Double or else。
您舉的範例,我覺得到比較接近 Factory Method,您可以參考看看。

如果您可以確定非得用Generic不可,我揣摩您的意思,建立 Object 程式如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public interface ILog<R> {
  void setRoot(R root);
  R getRoot();
  void setAction(String action);
}
public class Log<R> implements ILog<R> {
  private R root;
  private String action;
  public Log(R root) {
    super();
    this.root = root;
  }
  @Override
  public R getRoot() {
    return root;
  }
  @Override
  public void setRoot(R root) {
    this.root = root;
  }
  @Override
  public void setAction(String action) {
    this.action = action;
  }
 
  public static void main(String[] args){
    Billing billing = new Billing(...);
    ILog<Billing> billingLog = new Log<Billing>(billing);
    Order order = new Order(...);
    ILog<Order> orderLog  = new Log<Order>(order);
    //do your job ith ILog instances
  }
}


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
639 請問這種情況如何使用泛型 avseq 3628 2010-05-14 15:33
594 Re:請問這種情況如何使用泛型 kentyeh 607 2010-05-14 18:13
531 Re:請問這種情況如何使用泛型 avseq 274 2010-05-14 23:52
541 Re:請問這種情況如何使用泛型 caterpillar 688 2010-05-15 00:26
550 Re:請問這種情況如何使用泛型 kentyeh 1175 2010-05-15 01:17
509 Re:請問這種情況如何使用泛型 avseq 167 2010-05-17 09:12
» JWorld@TW »  Java SE 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8