如何检查道具类型时,如下所示
void main(){
var obj = Ball<PassData>(data: PassData(id: 1,nama: 'asdas'));
print('${obj.get()}');
}
class Ball<T>{
T data;
Ball({this.data});
String get(){
if(data is PassData){ //can't check it this way
return 'this type has ${data.id} and ${data.nama}'; //compile error
}
else{
return 'no : $data';
}
}
}
class PassData{
String nama;
int id;
PassData({this.nama,this.id});
}
当使用PassData对象的属性时,我得到了一个类似上面的编译错误。我需要获取'data‘类型属性的类型。我做错了吗?
发布于 2020-09-29 14:59:44
当前您的数据为T类型,而get类不知道它属于哪个类,因此无法处理这些操作。您可以尝试这样做:
String get(){
if(this.data is PassData){
return 'this type has ${(data as PassData).id} and ${(data as PassData).nama}';
}
else{
return 'no : $data';
}
}
https://stackoverflow.com/questions/64113829
复制相似问题