gpt4 book ai didi

java - 有没有工具可以完成复制+粘贴+替换源代码的手动工作?

转载 作者:行者123 更新时间:2023-11-29 07:16:42 25 4
gpt4 key购买 nike

大家下午好,我正在编写原始 int 的自定义数组列表的代码(以避免装箱的开销),原始 byte 的数组列表s,原始 long 的数组列表,原始 char 的数组列表,以及原始 double 的数组列表。

这 5 个类的代码非常相似。基本上逻辑是(几乎)相同的。但是,由于无法使用泛型,因此无法定义可用于所有 5 个类的通用泛型函数(如果我错了请纠正我)。

因此,我不得不将相同的代码重复 5 次,每次都执行字符串搜索替换。当我必须编辑类时,问题就来了,因为我必须进行 x5 次相同的编辑。

现在我想知道保持像这样重复样板代码的最佳方法是什么?

有没有工具可以手动完成复制+粘贴+替换的工作?

(例如,我可以定义一个转换函数 F() 并告诉工具:对于类 mypackage.IntArrayList 的源代码,将转换 F() 应用于类的源代码 mypackage.ByteArrayListmypackage.LongArrayListmypackage.CharArrayListmypackage.DoubleArrayList) ?

最佳答案

to avoid the overhead of casting

我认为你的意思是(非)拳击,而不是施法; )

Now I was wondering what's the best way to maintain repeating boilerplate code like these?

现在,我知道这个答案会被一些人反对,但是......

Trove API 的实现方式很简单:自定义和自动代码生成工具。

Trove 是一种基于原语的集合 API,当与原语一起使用时,它围绕默认的 Java 集合运行。将 Trove TIntIntHashMap 与 (HashMap * 进行比较一点都不好玩。这对于默认的 Java API 来说是可耻的...

他们遇到的正是您遇到的问题。他们使用代码生成工具解决了这个问题。

在旁注中,Trove 已经有一个由基元支持的 TIntArrayList,它可能已经或可能没有执行您现在正在实现的操作(如果我正确理解您的问题)。

关于java - 有没有工具可以完成复制+粘贴+替换源代码的手动工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com