在學習泛型中遇到的多型的乙個小問題

2022-08-31 09:30:10 字數 2154 閱讀 7315

在學習泛型的過程中,我需要建立person、worker、student 乙個父類兩個子類,但是在建立過程遇到一些問題,先上**

package cn.haiyisoft.domain;

public class personforgeneric implements comparable

public void setname(string name)

public int getage()

public void setage(int age)

@override

public int hashcode()

@override

public boolean equals(object obj) else if (!name.equals(other.name))

return false;

return true;

} public personforgeneric(string name, int age)

public personforgeneric()

@override

public int compareto(personforgeneric o)

}

package cn.haiyisoft.domain;

public class workerforgeneric extends personforgeneric

public void setname(string name)

public int getage()

public void setage(int age)

public workerforgeneric(string name, int age)

@override

public int hashcode()

@override

public boolean equals(object obj) else if (!name.equals(other.name))

return false;

return true;

} @override

public string tostring()

}

package cn.haiyisoft.domain;

public class studentforgeneric extends personforgeneric

public void setname(string name)

public int getage()

public void setage(int age)

@override

public int hashcode()

@override

public boolean equals(object obj) else if (!name.equals(other.name))

return false;

return true;

} public studentforgeneric(string name, int age)

@override

public string tostring()

}

person類實現了comparable介面,worker和student類繼承了person類,按照正常的設計來講,worker和student類不需要再定義name。age以及相應的set和get方法,但是我在兩個類裡又重新定義了name和age 這就導致了person類中的compareto方法有了些問題

正常來講compareto方法裡面應該是這樣的

public int compareto(personforgeneric o)

但是如果在treeset中傳入子類,那麼就會使得this.name等指向了父類的name,但是父類的name是沒有被賦值的(成員變數沒有多型)最後執行時會報空指標,如果一定要堅持的話,那麼compareto方法要改成這樣

public int compareto(personforgeneric o)

C 泛型設計的乙個小陷阱

距離上次發表部落格已經有幾年了.對於沒能堅持更新部落格,實在是感覺到甚是慚愧.閒言少敘,直接切入主題.最近一直在對於公司乙個網路通訊服務程式使用.net core 進行重構.重構的目的有兩個 一是讓程式能夠跨平台執行.二是優化程式 結構是程式的可維護性有所提公升.重構的過程主要由我來設計底層的架構....

乙個簡單的例子學習c 泛型

using system 我們在編寫程式時,經常遇到兩個模組的功能非常相似,只是乙個是處理int資料,另乙個是處理string資料,或者其他自定義的資料型別,但我們沒有辦法,只能分別寫多個方法處理每個資料型別,因為方法的引數型別不同。有沒有一種辦法,在方法中傳入通用的資料型別,這樣不就可以合併 了嗎...

在學習springmvc中遇到的各種bug

學習是一種信仰 bug01 controller public class querycontroller 頁面顯示資訊 一開始也是惑之不解?不過從狀態碼405可以得知錯誤屬於4xx系列,因此錯誤發生在客戶端而不是在服務端。所以排錯的區域就被鎖定在客戶端,同時405狀態碼已經將錯誤原因高度你了 不支...