首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dart :如何检查属性的泛型类型?

dart :如何检查属性的泛型类型?
EN

Stack Overflow用户
提问于 2020-09-29 14:09:42
回答 2查看 236关注 0票数 0

如何检查道具类型时,如下所示

代码语言:javascript
运行
复制
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‘类型属性的类型。我做错了吗?

EN

Stack Overflow用户

发布于 2020-09-29 14:59:44

当前您的数据为T类型,而get类不知道它属于哪个类,因此无法处理这些操作。您可以尝试这样做:

代码语言:javascript
运行
复制
String get(){
if(this.data is PassData){ 
  return 'this type has ${(data as PassData).id} and ${(data as PassData).nama}'; 
}
else{
  return 'no : $data';
}

}

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64113829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档