反射诸如“double”之类的基本类型会导致意外的输出

2023-11-30

以下示例失败并显示:

FAIL: MyClass tests getClassReturnsConstructorForDouble
  Expected: ?:<double>
    Actual: ?:<double>

Example:

test("getClassReturnsConstructorForDouble", () {
    double object = 10.1;
    Type objectClass = reflect(object).type.reflectedType;      
    expect(objectClass, equals(object.runtimeType));
});

难道不能准确反映int/double类型吗?


ReflectedType 为您提供真正的实现类型。 RuntimeType 可以撒谎,并且确实是有意设计的。

对于各种类型的数字、字符串和其他内置类型,可以有不同的实现,但它们是公开的。

例如,对于不同大小的整数,我们可能有不同的实现类型,但它们都会说它们的runtimeType是int。如果你反思一下它们,你就会发现其中的差异。

另一个例子可能是字符串。例如,可能有针对纯 ASCII 字符串的专门类,因为它们可以更紧凑地表示。这不会在基础级别公开:runtimeType 是 String。除非您通过反射挖掘它,否则您无法检测到它。

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

反射诸如“double”之类的基本类型会导致意外的输出 的相关文章

随机推荐

  • 如何创建 const boost::iterator_range

    评论于为什么 boost find first 对它的输入采用非常量引用 建议 调用者使用 const iterator 模板参数创建一个非常量 iterator range 以 证明 迭代对象具有足够的生命周期 这是什么意思以及我该怎么做
  • 刷新后保持选项处于选中状态

    我有一个按插入选择中的两个参数排序的人员列表 当有人选择一个参数时 如何在刷新或更改 返回页面时保持该参数的选择 我在互联网上的一些帖子上看到了一些问题 但大多数都使用 JQuery 而我不想使用它 代码是这样的
  • Firebase 使用 java(非 android)检索信息

    我一直在尝试使用 java 代码 非 android 获取 firebase 数据库的数据 我使用了与在 android 应用程序中检索相同的方法 但它没有获取数据 Firebase firebase new Firebase https
  • WPF - 通过考虑用户任务栏来最大化无边框窗口

    我正在使用自定义镶边创建一个 WPF 窗口 所以我设置ResizeMode NoResize and WindowStyle None 实现我自己的 chrome 然而 最大化无边框窗口时存在一个问题 它占据了整个屏幕 我发现以下技巧可以解
  • 日期时间和 DbNull.Value

    有谁知道为什么这有效 if item Created DateTime MinValue ListSqlParam Add new SqlParameter TransactionCreated DBNull Value else List
  • 如何替换多个匹配的正则表达式

    我有一组正则表达式替换需要应用于一组字符串 例如 所有多个空格都带有单个空格 s 2 gt 全部 后跟一个 char 后跟空格 后跟字符 a zA Z gt 1 所以我会有这样的东西 String s hello how are you s
  • 将多个文本文件导入到工作簿中,其中工作表名称与文本文件名匹配

    介绍 继续我之前的question最初 我之前的代码 在堆栈交换专家的帮助下 运行良好 Problem 但下次当我再次导入文件时 我必须每月导入一次 它会创建重复的工作表 所以我想修改我的项目如下 单击 导入文本文件 按钮后 VBA 代码
  • 如何为 Visual Studio 云测试的每个核心代理使用不同的 .csv?

    我正在尝试使用 Visual Studio Cloud Test 执行简单的 REST API 负载测试 https www visualstudio com en us docs test performance testing gett
  • lambda 表达式中的赋值

    我想定义一些 lambda 表达式来表示类实例属性的更新 我尝试写如下 Expression
  • 从 require.context 迁移到 import.meta.webpackContext

    我正在尝试将我的 Vue PWA 迁移到 ESM 替换所有require by import 但更换require context by import meta webpackContext在编译时给我以下警告 严重依赖 不支持直接访问 i
  • 在字典理解中使用 eval 时出现 NameError

    我正在尝试在我的班级中编写字典 data element eval self s element for element in key 我有这个错误 data element eval self s element for element
  • 如何在 ChangeNotifier 中使用 Futures?

    我有一个sqlite我从中读取数据的数据库 我还有一棵很长的小部件树 所以经过一番研究后我发现provider颤振包 但我不知道如何在类扩展中使用 FuturesChangeNotifier或者如何在我的小部件树中的任何位置使用它 clas
  • 为通过参数返回的函数创建类型映射

    我正在转换 C api gt Java 并且我有以下函数原型 Retrieves an individual field value from the current Line param reader pointer to Text Re
  • 如何启用电子身份验证的弹出窗口?

    我正在创建一个访问 url 的电子应用程序 当导航到该 URL 时 用户单击按钮并被重定向到在 Chrome 中显示此弹出窗口的 URL 如何在电子中启用 显示此弹出窗口 默认情况下似乎没有启用它 您在图片中看到的是 Chrome 打开一个
  • 内容的最大长度?

    我正在尝试使用连接服务器HttpURLConnection 但我的 PUT 方法有问题 我需要发送一个字符串1500 个字符 或更多 但在这种情况下 服务器会产生超时并返回500 服务器内部错误 如果我发送的字符串低于1400 个字符 我没
  • 在没有安装 Hadoop 的情况下在 Spark 上提交 .py 脚本

    我有以下简单的字数统计 Python 脚本 from pyspark import SparkConf SparkContext conf SparkConf setMaster local setAppName My App sc Spa
  • 硒中的单击相当于双击

    我有一个简单的代码 点击链接就会打开一个新窗口 但是在执行脚本时 单击与双击同一元素一样 会打开 2 个窗口 我正在使用 InternetExplorer 驱动程序 String baseURL URL to opened DesiredC
  • 检测用户是否对 Android 中的应用进行评分

    最近我读到一篇关于市场上的游戏的文章 我不会透露名称 因为我认为这种做法对 Android 来说是负面的 不想公开它 如果你没有评级就不允许更新市场5星 这就是文章所说的 我想知道这是否可以检测到 如果是 如何做到这一点 我只需要知道用户是
  • famo.us 中的表面渲染事件

    我正在寻找一个事件来告诉我何时渲染表面 以便我可以调用诸如 surface focus 之类的方法 如果我在创建表面后立即调用焦点 它将不起作用 如果我在任意时间后在计时器中调用它 我希望它能够被渲染 它就会起作用 所以一定有一个我可以使用
  • 反射诸如“double”之类的基本类型会导致意外的输出

    以下示例失败并显示 FAIL MyClass tests getClassReturnsConstructorForDouble Expected