在 Dart 中,是否有可能像 Java 一樣,在非通用類中擁有通用方法?
我使用Getx進行狀態管理、DI&路由,但這個問題并不是針對Getx或Flutter的。
我有AuthService,它處理認證和設定登錄的用戶,如Rxn<AppUser>。我有3種型別的用戶。 Customer extends AppUser, Seller extends AppUser & Admin extends AppUser.
我想把用戶的可觀察性改為類似這樣的東西。Rxn<? extends AppUser> currentUser = Rxn().
我試過下面的語法,但沒有用。
我試過下面的語法,但沒有用。
class AuthService extends GetxService {
T Rxn<T extends AppUser> currentUser = Rxn()。
...
}
直接回答我的問題:
Dart也支持通用型別的繼承(與Java不同)。所以,Rxn<AppUser> currentUser = Rxn<Patient>()在Dart中是可行的。我不需要通配符或任何。感謝@jamesdlin的回答/評論。
uj5u.com熱心網友回復:
你可以有通用方法。 你宣告它們的方式與宣告泛型函式的方式相同:
class Foo {
String key。
Foo(this.key)。
Map<String, T> f<T> (T value) => <String, T> {key: value};
}
然而,擁有通用欄位是沒有意義的。 一個欄位代表一個資料成員;當型別還不知道時,什么資料會被存盤在哪里? 你會為T的每個可能的值存盤一個潛在的無限數量的資料成員嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/318611.html
標籤:
下一篇:如何在運行時指定通用型別?
