从通用约束 Dart 调用静态方法

2024-03-19

我正在尝试从收到的泛型类型中调用静态方法。 这可能吗?

此外,我应用了类型约束,以便仅从其父类操作该对象。

这是我想要实现的目标的一个简短示例:

class A {
  static func() {
    print("A");
  }
}

class B extends A {
  static func() {
    print("B");
  }
}

concret<T extends A>() {
  T.func(); // I expected a print('B')
}

main() {
    concret<B>();
}

不,这是不可能的。

Dart 静态方法调用在编译时解析,因此不可能在仅在运行时具有值的类型变量上调用它们。

如果可以的话,那就完全不安全了。任何人都可以创建班级C延伸A它没有静态func成员并调用concret<C>();。由于静态成员不是继承的,因此它必须给您一个运行时错误,并且您无法在编译时检测到该错误。这是不允许的主要原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从通用约束 Dart 调用静态方法 的相关文章

随机推荐

  • 将 ODBC 应用程序与 JDBC 驱动程序结合使用

    我公司使用Vertica http www vertica com 我们有使用 pyodbc 连接到它的 Python 应用程序 我的大部分开发工作都是在 Mac Snow Leopard 上进行 不幸的是 Vertica 尚未发布适用于
  • 模拟 Retrofit 响应调用,但 Call 不起作用

    我正在嘲笑 APIService 的响应 不幸的是 它不起作用 我必须回电 但我不明白如何做 问题是如何发回 Call 对象 RunWith AndroidJUnit4 class class ApiServiceTest Test fun
  • 如何使用 API Gateway 上传 xls/xlsx 文件并将文件数据发送到 lambda 函数?

    我是 lambda 和 API 网关的新手 我使用此服务做了一些简单的事情 但现在我有一个要求 用户可以上传 Excel 文件 上传过程只是触发与 lambda 函数集成的 API 网关端点 我不想保存文件 我只想将文件数据以 CSV JS
  • 如何检查实体框架类型的属性是否可为 Null

    我有一个从数据库生成的 EntityDataModel 其中一个实体模型有两个属性 它们都是字符串类型 一个是 Nullable True 另一个是 Nullable False 如何在运行时检查 Nullable 属性的值 如果您的属性装
  • 如何从 Swagger API 声明生成 JSON-Schema

    我有 Swagger API 声明 用于使用招摇 v 1 2 https github com wordnik swagger spec blob master versions 1 2 md 我对 Swagger 的最初感觉是它非常接近
  • SQL Server - 同义词提示和技巧? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在xamarin表单中移动右侧搜索栏的搜索图标

    如何在 Xamarin 表单中移动右侧搜索栏的搜索图标 我正在寻找安卓和IOS 对于 Android 我使用了 SearchBarRenderer 下面的代码不起作用 有人知道该怎么做吗 请帮忙 protected override voi
  • 如何在AngularJS中创建全局变量

    我遇到这个问题 当您注册时 您会进入 用户 页面 它应该说 欢迎 用户名没有出现在网页上 原因我不确定 请帮助这里是plunkr http plnkr co edit qB3Gkeq5ji1YQyy0kpGH p preview http
  • 如何在Python中找到素数

    我是Python新手 我正在尝试计算给定范围内的素数 开发者分享的一些答案如下 import math def count primes num out for i in range 3 num 2 if all i j 0 for j i
  • 如何使用车把模板显示json对象键和值?

    我已经开始学习handlebar js 我正在努力显示 json 数据 我的 json 看起来像这样 var data record1 first name john city newyork name brit
  • CMPXCHG16B 正确吗?

    尽管我不确定为什么 但这似乎并不完全正确 建议会很好 因为 CMPXCHG16B 的文档非常少 我没有任何英特尔手册 template lt gt inline bool cas volatile types uint128 t src t
  • 使用 netbeans 中另一个 jFrame 的按钮关闭 jFrame?

    我在 netbeans 中创建了两个 jFrame 第一个被命名为MainFrame另一个是ExternalFrame 每个都有一个按钮 单击按钮MainFrame将设置ExternalFrame可见与MainFrame仍然在屏幕上 我想处
  • 如何Python请求像我的浏览器一样跟随URL

    我注意到 Python 的 requests 库并不像我的浏览器那样遵循某些 URL 重定向 例如 当我这样做时 response requests get http www bbmt org verify False allow redi
  • 为什么 Python 有 __ne__ 运算符方法而不仅仅是 __eq__?

    答案here https stackoverflow com questions 4352244 python implementing ne operator based on eq给出您想要的案例的手动参考 ne 返回除逻辑倒数之外的其
  • 带构造函数的抽象类,强制继承类调用它

    我有一个abstract带有构造函数的类XYZ string name 我还有一个继承自该抽象类的类 如何强制遗传要调用的类base string name 现在我可以使用new Inherited 并且它不会调用基本构造函数 我想强制用户
  • Mathematica 下调 Lhs 值

    有谁知道 Mathematica 中是否有一个内置函数可以获取 downvalue 规则的 lhs 没有任何保留 我知道如何编写代码来做到这一点 但这对于内置程序来说似乎已经足够基本了 例如 a 1 2 a 2 3 BuiltInIDoNo
  • Xcode 构建和运行错误:“进程启动失败:无法获取进程 216 的任务”

    更新到 Mavericks 并确保我也安装了 Xcode 的最新更新后 Xcode 突然无法在设备上启动应用程序 它会在我的 iPhone 上安装该应用程序 但在运行之前会抛出以下错误 进程启动失败 无法获取进程 216 的任务 这是更新后
  • Docker 中的 PostgreSQL - pg_hba.conf 允许从主机访问容器

    我想在 Docker 容器内运行 PostgreSQL 我正在构建自己的 Docker 镜像 因为我想包含 PostgreSQL 扩展 我应该编辑pg hba conf配置文件到 允许来自其他容器的访问 允许来自主机的访问 第一个非常简单
  • 无法读取未定义的属性“标签”

    我刚刚学习 Chart js 的工作原理 因此我直接使用了 Chart js API 页面上的示例代码 但它似乎不起作用 我将以下代码放入脚本标记中 并收到 无法读取未定义的属性 标签 错误 不确定这个错误意味着什么 function va
  • 从通用约束 Dart 调用静态方法

    我正在尝试从收到的泛型类型中调用静态方法 这可能吗 此外 我应用了类型约束 以便仅从其父类操作该对象 这是我想要实现的目标的一个简短示例 class A static func print A class B extends A stati