gpt4 book ai didi

java - 在 Java 中保存大型静态类型安全字典的优雅方式 - 或者避免代码太大

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:06 25 4
gpt4 key购买 nike

基本上我想要一些字典,它是对遗留 #define 指令的抽象。

我有一个包含 6000 多个定义的旧头文件,它们用作标志参数函数,这些定义表示一种类型的实体 parameter

在 C 中我有

  GetParameter(... , T_CTITLE, ...); 

在 Java 中我想调用

  Connector.getParameter(Parameter.CTITLE, ...); 

Parameter 将封装与从库中获取参数相关的所有逻辑。

参数实例自动从 header 中提取并转换为 java 代码,但问题是参数类变得太大 - 即我得到 code too large 编译错误(让我强调一下:还有更多那 6000 个参数)。

我会很高兴以一种支持 IDE 或使用自动完成的方式进行这种抽象,并且非常不喜欢在 HashMap 中存储参数对象的想法。

编辑:参数类定义如下:

public Parameter{
/** logic **/
public static final Parameter<T> parameter1 = new Parameter<T>("NAME", "T", 0xAAB);
...
public static final Parameter<T> parameter6000 = new Parameter<T>("FOO", "T", 0xZZZ);
}

最佳答案

一个明显的 hack 是要么分成一个大的继承链,要么更好地分成接口(interface)(不需要 public static final 噪音)和一个接口(interface)来继承它们。

您可以通过缩小创建代码来节省空间。而不是:

new Parameter<T>("NAME", "T", 0xAAB)

极简主义的方法是:

parameter("NAME T AAB")

有关限制的详细信息,请参阅 section 4.10 JVM 规范(第 2 版)。要查看编​​译后的代码是什么样的,请使用 javap -c

关于java - 在 Java 中保存大型静态类型安全字典的优雅方式 - 或者避免代码太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864833/

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