1.方法的泛型
// 泛型不局限于某种类型,还能进行类型的验证
T getData<T>(T value){
return value;
}
void setData<T>(T value, String name){
print("${value} ${name}");
}
main(List<String> args) {
print(getData("name")); // string类型
print(getData(123)); // int 类型
setData("name", "xxx"); // string类型
setData(123, "xxx"); // int 类型
}
2.类,接口的泛型
// 类的泛型
class Animal<T>{
T name;
T printInfo(T val){
return val;
}
}
//抽象类的泛型
abstract class AnimalAnother<T>{
T name;
void printMsg(T value){
print(value);
}
}
//接口的泛型
class C<T> implements AnimalAnother<T>{
@override
T name;
@override
void printMsg(T value) {
// TODO: implement printMsg
}
}