亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實現泛型接口的正確方法

實現泛型接口的正確方法

小怪獸愛吃肉 2022-07-27 20:06:32
該示例將顯示在 上Comparable,但問題是關于所有類似情況。所以 Comparable 是一個通用接口:public interface Comparable<T>我們可以通過兩種方式(主要)實現它:使用泛型類型實現并compareTo使用已知類型參數覆蓋方法:MyClass implements Comparable<MyClass> {   @Override   public int compareTo(MyClass o) {      return myVar.compareTo(o.myVar)   }}不使用泛型類型實現并將 compareTo 與Object參數一起使用:MyClass implements Comparable {   @Override   public int compareTo(Object o) {      return myVar.compareTo(((MyClass)o).myVar)   }}哪種方法更容易接受?彼此的優缺點是什么?我想第一種方法更好,因為沒有額外的鑄造,但這是唯一的優勢嗎?
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

如果您使用第二個而不在第一個之前進行類型檢查,那將沒有任何意義。將其留給編譯器進行這些檢查,然后選擇第一個選項。

在這種特殊情況下,選擇第一個選項可確保Comparator通過比較同一類型的兩個對象 100% 的時間來履行您的合同。

一般來說,如果泛型是在高級類中定義的,主要是有充分的理由通過提供更具可讀性和可維護性的代碼以及編譯時類型檢查來提供更好的可用性。


查看完整回答
反對 回復 2022-07-27
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號