在 Clojure 中测试对象是否为 Java 原始数组

2023-12-29

Clojure 中检测对象是否为 Java 原始数组的最佳方法是什么?

我需要这个的原因是对原始数组进行一些特殊处理,这可能看起来像:

  (if (byte-array? object)
    (handle-byte-array object))

它是一段对性能相当敏感的代码,因此我宁愿尽可能避免反射。


您可以使用反射一次从名称中获取类,缓存它然后 将其余部分与此进行比较

(def array-of-ints-type (Class/forName "[I"))
(def array-of-bytes-type (Class/forName "[B")) 
...

(= (type (into-array Integer/TYPE [1 3 4])) array-of-ints-type)
true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Clojure 中测试对象是否为 Java 原始数组 的相关文章

  • 内置类型的成员是否已默认初始化?

    我最近遇到了我的一个类的问题 因为我没有在构造函数初始化列表中设置指向 NULL 的指针 因此当我运行程序时它包含垃圾 然而 虽然我知道在堆栈上声明但未初始化的内置类型的实例将包含随机值 但我很确定我在某处读过 因为未显式放置在构造函数初始
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有
  • 获取 LLVM getelementptr 中的操作数名称

    我正在尝试获取 getelementptr 指令引用的数组的名称 当在实际的 C 代码中使用中间变量对数组进行索引时 这似乎起作用 如下所示 int a 0 i a 3 在这种情况下 我得到以下位码 arrayidx getelementp
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • Clojure:让作用域和函数返回值

    我在弄清楚如何使用 let 形式时遇到了一些麻烦 在下面的示例中 我想在本地绑定值 cols 以便稍后在函数中处理它 然而 我注意到 如果我使用 let 函数 sel opt tmp 将返回 nil 值而不是列表 defn sel opt
  • 如何拦截 .Net 中第三方库对非虚拟方法的调用?

    我认为我需要的是 net 人们称之为 透明动态代理 的东西 但到目前为止我所看到的所有实现 Castle DynamicProxy Spring NET AOP 等 都要求我至少执行以下操作之一 将拦截的方法声明为虚拟方法 包装类并创建包装
  • Array.indexOf 如何比 Array.some 更高效

    这个问题的灵感来自于这个问题的竞争答案 具有多个参数的indexOf https stackoverflow com questions 39000151 indexof with multiple arguments 用户想知道一种有效的
  • 使用反射获取通用 IDictionary 的值

    我有一个实现的实例IDictionary
  • 为神经网络打乱两个 numpy 数组

    我有两个 numpy 数组用于输入数据 X 和输出数据 y X np array 2 3 sample 1 x 16 4 dtype float sample 2 x y np array 1 0 sample 1 y 0 1 dtype
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • 在 Clojure 和其他 Lisp 方言中,在函数名称末尾使用星号的约定是什么?

    请注意 我不是在谈论符号名称中的耳罩 这个问题在Clojure 常量的约定 样式和用法 https stackoverflow com questions 3579063 conventions style and usage for cl
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • Java - java.lang.NoSuchMethodException

    我尝试使用这段代码 Updatem set 在 for 循环内部使用 它会执行几种使用不同类型参数的方法 如果我添加例如 int classgetMethod 在一次迭代后我会得到错误 因为下一个方法需要 String class 是否可以
  • C# Byte[] 转 BCD 和 BCD 转 INT

    我有一个由 CashRegister Machine 创建的 Hex 文件 我必须读入这个文件 文件使用下面详述的格式 它就像套接字数据包 代码数据 2字节PLU 代码数据 7 字节单价数据 5字节数量数据 5字节数据总量 5字节PLU 名
  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • 异或交换可以扩展到两个以上的变量吗?

    我一直在尝试将异或交换扩展到两个以上的变量 例如n变量 但我没有得到比这更好的地方3 n 1 对于两个整型变量x1 and x2你可以像这样交换它们 swap x1 x2 x1 x1 x2 x2 x1 x2 x1 x1 x2 所以 假设你有
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • Angular 4 显示其中的数据

    我不喜欢从 API 返回到我的 Angular 4 应用程序的数据 这是 JSON 的示例 我不关心美元 但这是我正在处理的数据类型 最终目标是在页面上展示 Coin Price BTC 4 281 28 ETH 294 62 etc JS
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • Clojure 宏expand

    Why does macroexpand arm getHand getFinger 扩展到 arm getHand getFinger while macroexpand gt arm getHand getFinger 扩展到 getF

随机推荐

  • (Cocoa) 单窗口 Cocoa 应用程序中的 UIViewController 子类相当于什么?

    在尝试了 iOS 应用程序之后 我想尝试一下 Cocoa 应用程序 假设事情会非常相似 所以我有一个带有分割视图的单窗口应用程序和一些NSTableViews 想想iTunes 我正在寻找一个地方来放置我的代码 该代码将从网络获取数据来填充
  • ArrayList 容量大小增加奇怪的行为

    当 ArrayList 想要存储比实际容量更多的元素时 它会增加容量 这是非常经济高效的操作 因为我们实际上将所有数据从以前的 ArrayList 复制到容量更大的新 ArrayList 中 但是我想知道 当 ArrayList 只是需要更
  • 如何处理 Angular 和 Django 应用程序中的第一个请求

    我有一个问题 我的家乡网址是 而且在 Django 中我的主页 url 是 stateProvider state home url controller HomeController resolve cities getAvailbleC
  • 如何应对500万用户? ASP.NET 身份

    我正在运行一个 ASP NET mvc5 应用程序 目前有 500 万用户 它托管在 Azure 云中 对于身份验证 我使用 EntityFramework 的 Asp Net Identity 但是 用户越多 注册功能就越慢 我尝试缩放数
  • Netlogo:运行时创建小世界网络

    我正在尝试生成一个小世界类型的网络 https en wikipedia org wiki Small world network https en wikipedia org wiki Small world network 在我创建的
  • Mongodb 读取首选项

    SETUP 我有 mongodb 的一个主实例和两个辅助实例 两个辅助实例之一托管在与我的 Web 应用程序相同的区域中 我正在使用 pymongo 进行连接 QUERY 如何以较低的延迟连接到辅助设备 目前我正在这样做 from pymo
  • 如何使用 jquery 动态地将新项目添加到此表单内的下拉列表中?

    document ready function var element form element on mousedown function event element
  • Javascript:仅读取大型服务器文本文件的最后 x 行数

    今天我正在处理非常大的日志文件 我想通过 RPi 上的 lighttpd 显示它们 但它们每天都在变大 因此很快将需要很长时间来加载 为了防止这个问题 我想我可以有一个按钮来读取 比如说这个日志文件的最后 500 行 当然我对javascr
  • 如何在 Windows 10 上弹出 USB 驱动器(IOCTL_STORAGE_EJECT_MEDIA 不再足够)

    在 Windows 上弹出 USB 驱动器的惯例是按以下顺序进行 CreateFile drive letter with read write rights file share read and write DeviceIoContro
  • Eclipse 风格工具提示库?

    Does anyone know of an open source swing tooltip library that works like eclipse s tooltips Specifically the functionali
  • 在 WinForms 中,UI 中是否可以有多个线程?

    我想答案是否定的 我在 stackoverflow 上检查了类似的问题 但它们似乎根据特定解决方案的需要走了不同的方向 但可能错过了一些东西 WinForms 应用程序中是否可以有多个 UI 线程 我正在重构并想知道是否应该使用 Concu
  • 仅 WPF TabItem 标题样式

    我正在编写一个 WPF 应用程序 并尝试设置 TabItem 标头的样式 仅在选择时显示背景颜色更改的边框 问题是 当我添加该样式时 它会弄乱 TabItem 中 TextBlock 项目的样式 我不是 WPF XAML 专家 下面是我在
  • 动态创建div时如何显示/隐藏div

    我正在开发评论系统 对评论进行两级重播 我在如何显示和隐藏 div 方面遇到问题 因为它的 id 不同 我尝试了以下方法
  • 构建定义——只有空队列

    如果我正在创建构建定义 则无法选择默认代理队列 不久前 我可以创建包含默认队列的构建定义 我不知道改变是什么 它不再起作用了 如果我去编辑正确创建的构建定义 然后再次尝试创建定义 我可以选择默认队列 这是什么原因呢 在创建之前编辑现有的构建
  • 正则表达式验证 UTC 日期时间格式

    我想验证日期时间格式 例如 2014 08 29T06 44 03Z 为此我正在寻找一个reg ex 尝试了几种组合 但这些对我不起作用 试试这个正则表达式 b 0 9 4 0 9 2 0 9 2 T 0 9 2 0 9 2 0 9 2 Z
  • 在 word2vec Gensim 中获取二元组和三元组

    我目前在我的 word2vec 模型中使用 uni gram 如下所示 def review to sentences review tokenizer remove stopwords False Returns a list of se
  • IndexError:索引超出范围:7

    我正在使用名为财务数据质量管理企业版 FDMEE 的 Oracle EPM 产品 我编写了一个 Jython 脚本来解析数据文件并将其推送到 FDMEE 产品架构中的自定义表 当我推送数据文件的子集时 它工作正常 但是当我解析整个数据文件时
  • Git SVN 忽略路径如何工作(忽略每日构建标签)?

    我正在尝试使用 git svn 克隆 svn 存储库 该存储库具有我想忽略的每日构建标记 我正在尝试使用 ignore paths 选项来执行此操作 但我仍然将每日构建标签作为我的存储库中的分支 最近有一个类似的 但到目前为止尚未得到解答
  • 连接一元参数的模板参数包

    虽然说 std add pointer是一元的 以下代码被 GCC 7 0 0 20160608 和 Clang 3 9 0 接受 template
  • 在 Clojure 中测试对象是否为 Java 原始数组

    Clojure 中检测对象是否为 Java 原始数组的最佳方法是什么 我需要这个的原因是对原始数组进行一些特殊处理 这可能看起来像 if byte array object handle byte array object 它是一段对性能相