首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Clojure中的defrecord扩展Java类?

如何使用Clojure中的defrecord扩展Java类?
EN

Stack Overflow用户
提问于 2020-09-01 20:46:14
回答 2查看 333关注 0票数 0

根据我的研究,扩展Java类的方法基本上是使用名称空间中的gen类或代理。但是,看看选择类型流程图,它似乎表明我可以使用记录来扩展一个Java类:

  1. 该类型是否需要扩展Java类或实现任何接口?是
  2. 您需要命名类型还是只需要匿名类型的实例?命名类型
  3. 您需要能够从Java静态地引用类吗?不是
  4. 您的类建模是否是一个域值,从而受益于类似hasmap的功能和语义?是

使用解除记录

所以问题是..。多么?

例如(来自):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public final class Second extends Struct {
    public final Signed32 a_number = new Signed32();
    public Second(final Runtime runtime) {
        super(runtime);
    }
}

public final class Top extends Struct {              
    public final Second second = inner(new Second(getRuntime()));  
    public final Second[] seconds = array(new Second[5]);
    public final Signed32 another_number = new Signed32();
    public final Signed32[] more_numbers = array(new Signed32[5]);
    public Top(final Runtime runtime) {
        super(runtime);
    }
}

我是不是..。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defrecord Second)
(extend jnr.ffi.Struct
        Second)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-01 21:02:28

我认为流程图是错的。通过查看Clojure -数据类型: deftype、defrecord和reify文档,我们可以看到:

  • deftype/defrecord可以实现一个或多个协议和/或接口

没有提到扩展现有类。实际上,在本身中,除了作为特例的Object之外,没有提到扩展现有类。

对不起,看来proxygen-class是您唯一的选择。

票数 1
EN

Stack Overflow用户

发布于 2020-09-01 21:34:49

为什么你需要一个命名的类型?如果,正如您所说的,您不需要从Java静态地引用它,我看不出有什么特别的理由来命名类型。如果你正确回答了这个问题,它就会引导你进入proxy。你的问题是你选择了不一致的答案:你说你需要一个命名的类,但不要对你可能需要的任何理由回答是。流程图所考虑的原因是Java代码可能希望按名称引用您的代码,在这种情况下是gen-class。但是,一方面您必须扩展Java类,另一方面您的新类型将是一个简单的数据载体,对域值进行建模,这是没有什么意义的。Clojure记录在这方面做得很好,但是拥有一个来自Java的令人讨厌的可变基类并不能成为一个好的域对象。

也就是说,如果您对“域类型建模”回答为"no“,它将导致您使用deftype,它也不能扩展一个类。我认为,如果您想要扩展一个类,那么它允许您逃离“互操作区域”是一个错误:最好将接口和子类分开,但是流程图只能如此大。

FWIW 对原流程图帖子的评论包含了您的问题,作者给出了一个答复,响应了我关于使用proxy的建议,以及流程图已经足够大的问题:

第一个决定并不是只表示您需要扩展一个类-它包括实现接口。所以,这里有点含糊不清。当然,你在那里的阶级社会,但打破更多的东西,以消除歧义会使流程图更大一点,我认为。 FWIW,我会亲自删除那里的命名类型需求,使用代理,只需处理(类(创建-代理-实例…)的结果)。例如?检查之类的(假设这就是为什么需要指定类型)。

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

https://stackoverflow.com/questions/63698850

复制
相关文章
金朵希的谜题
分享一个网站 可以解决斑马难题 这里是金朵希的谜题 出席晚宴的有温斯洛女士(Winslow)·马可拉医师(Marcolla)康提伯爵夫人(Contee)·奈子欧夫人(Natsiou)舆芬奇男爵夫人( Finch) 。 所有女士排成一列就座。她们都穿著不同颜色的衣物,芬奇男爵夫人戴了一顶样式活泼的紫帽子·马可拉医师坐在最左边,旁边是穿著白外套的客人·身穿绿衣的女士坐在穿红衣客人的左边。我纪得那件缘色衣服,是因为这位女士把她的苦艾酒洒在上面了。来自拜勒腾的客人穿善一身蓝。其中一位晚宴贵宾炫耀她的鼻烟盒时,
阿超
2022/08/21
1.1K0
金朵希的谜题
HDUOJ------(1272)小希的迷宫
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21080    Accepted Submission(s): 6449 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连
Gxjun
2018/03/21
7130
HDUOJ------(1272)小希的迷宫
南南的文章-验证码还能这样生成?
这边我们使用的是HuTool的工具类,CaptchaUtil.createLineCaptcha(200, 100),去生成的验证码图片,参数是宽高的意思。
灬沙师弟
2023/03/07
2600
南南的文章-验证码还能这样生成?
南邮CTF - Writeup
QNKCDZO的md5(32)加密后:0e830400451993494058024219903391
Mirror王宇阳
2020/11/13
1.9K0
南邮CTF - Writeup
小希的迷宫(并查集)
坑爹啊。。。 这道题不难但是还是wa了四次,首先该图必须连通的**,其次房间号码大小不一定从1开始,所以他的大小可以随意的,在初始化的时候需要将持续到MAXN,当直接输入0 0的时候输出的是YES,还有就是虽然集合合并后,但是father还不一定相同,必须Find后才能相同 #include<stdio.h> const int MAXN=100010; int father[MAXN],rank[MAXN]; struct Node { int x,y; } node[MAXN]; void
用户1624346
2018/04/11
6680
南邮CG-CTF
题目感觉质量很高 也很有趣哈 只写了部分web题目 pwn crypto不涉及 不要问我为什么 厂长是我表哥
用户2700375
2022/06/09
6120
南邮CG-CTF
南桥和北桥
现代 PC 机主板主要使用 2 个超大规模芯片构成的芯片组或芯片集(Chipsets)组成:北桥(Northbridge)芯片和南桥(Southbridge)芯片。北桥芯片用于与 CPU、内存和 AGP 视频接口,这些接口具有很高的传输速率。北桥芯片还起着存储器控制作用,因此Intel 把该芯片标号为 MCH(Memory Controller Hub)芯片。南桥芯片用来管理低、中速的组件,例如,PCI 总线、IDE 硬盘接口、USB 端口等,因此南桥芯片的名称为 ICH(I/O Controller Hub)。之所以用“南、北”桥来分别统称这两个芯片,是由于在 Intel 公司公布的典型 PC 机主板上,它们分别位于主版的下端和上端(即地图上的南部和北部)位置,并起着与 CPU 进行通道桥接的作用。 --by《Linux内核完全注释》
zy010101
2020/08/20
1.7K0
AS2指南
在本篇 AS2 协议指南中,将带您了解 AS2 的完整定义,并提供开始使用AS2的所需信息,包括:
知行软件EDI
2022/10/11
1K0
如何在你的文章中添加隐藏的版权信息
现在有4个中文汉字: 我是青南,首先介绍Python的 ord函数,它可以查询Unicode字符对应的Unicode码
青南
2019/03/18
1.6K0
如何在你的文章中添加隐藏的版权信息
南大ics面试记录
由于自己水平比较菜,就只敢报个软件所,不敢报lambda,4月份我投了自己的简历,当时不会写statement,statement就写了大概100多个字,太水了2333,然后5月24号通知我去面试,5月25号参加的面试.由于南大是强委员会的学校,所以说组面是比较轻松愉快的,也就是持续问了20分钟而已.但我还是在此给大家分享一下问题吧.
用户7267083
2022/12/08
5711
南大ics面试记录
IntelliJ IDEA 报错:找不到包或者找不到符号
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147792.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
6.5K0
希沃副总裁黄逸涛:希沃携手腾讯云共同助力教育数字化发展
11月30日,2022年腾讯全球数字生态大会举办。视源股份未来教育集团副总裁、开得联智能科技董事长黄逸涛出席智慧教育专场,围绕视源股份在教育领域的自主品牌希沃,发表了《希沃助力教育数字化转型应用实践与未来探索》主题演讲。 视源股份未来教育集团副总裁、开得联智能科技董事长黄逸涛 二十大报告中,把教育、科技、人才进行“三位一体”统筹安排,并明确提出要“推进教育数字化”。黄逸涛表示,这为教育数字化转型指明了行动方向,作为交互智能平板品类的首创者,希沃始终坚持“以用户为核心”,专注于教师、教室和教学,用数字化的方
鹅老师
2022/12/05
1.3K0
希沃副总裁黄逸涛:希沃携手腾讯云共同助力教育数字化发展
南大孵化,南栖仙策独创AI决策平台,快速搭建疫情模型
新型肺炎疫情防控战火热进行中,除了逆行的医护人员外,AI 领域也力求为疫情防控工作贡献自己的一份力量。
机器之心
2020/02/24
8200
南大孵化,南栖仙策独创AI决策平台,快速搭建疫情模型
希沃白板断网环境免登陆编辑课件
希沃白板是依靠云来实现同步编辑的功能,默认的编辑功能需要在有网络的情况下,才能很好的进行。如果我的网络断了,或进入了没有网络的无网环境,因为没法登录希沃白板的原因,无法编辑我的课件。本文来告诉大家简单的解决方法,通过希沃白板免登陆插件,实现免登陆进入希沃白板的编辑界面,编辑本地的课件
林德熙
2021/12/24
2.1K0
pycharmimport时找不到指定文件_pycharm系统找不到指定文件
Error running ‘hello’: Cannot run program “B:\pystudy\venv\Scripts\python.exe” (in directory “\python-study”): CreateProcess error=2, 系统找不到指定的文件。
全栈程序员站长
2022/09/27
5.7K0
pycharmimport时找不到指定文件_pycharm系统找不到指定文件
编译找不到jar
Git把项目clone下来直接编译,报错找不到jar,通过错误提示跳到代码,发现jar是有的。
HaC
2020/12/30
2.5K0
编译找不到jar
聊一聊南大光电
说起来南大光电,第一次了解它是因为要找TMG,就是一种用来给薄膜掺杂的前驱体Mo源,在上海半导体展看过他们的展台。后面由于纯度不够,还是找了日本的。不会后续野了解了他们,确实属于国内的佼佼者。
用户2760455
2022/06/08
4130
聊一聊南大光电
VisualStudio找不到Python
最近在使用C/C++开发Python的扩展模块,由于笔记本的性能较差,因此没有使用VS自带的conda环境,而是自己安装了一个Python核心解释器,但是使用VS2019创建项目的时候,代码大片飘红,提示找不到Python.h,如下所示:
py3study
2020/01/10
3.6K0
VisualStudio找不到Python
wireshark找不到网卡
在Capture Opinions中的interface若找不到网卡,一般是npf服务没有启动。
于果
2021/08/25
3.1K0
mysql sock找不到
MySQL有两种来连接方式,一种是通过TCP/IP,就是用-h参数指定要连接的mysqlserverI的IP,另一种是套接字socket,在这里就是mysql.sock文件。当我们的客户端与数据库服务器(mysqlserver)在同一台机器上时,就通过该文件来连接数据库。
全栈程序员站长
2022/07/11
6.2K0
mysql sock找不到

相似问题

南希DependencyResolver

11

南希: FormsAuthentication -开始

10

测试驾驶南希模块

23

南希自托管RunTimeBinderException

11

南希请求管道命令

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文