基本上,我认为多接口方法是要走的路。以下是我将如何构建该解决方案;我不知道 Parameter 构造函数的第二个参数是什么意思,所以我忽略了它。
在 .../com/yourcompany/legacydefines/Parameter.java 中:
package com.yourcompany.legacydefines;
public class Parameter<T> {
private final String name;
private final T val;
private Parameter(String name, T val) {
this.val = val;
this.name = name;
}
public static <T> Parameter<T> newParameter(String name, T val) {
return new Parameter<T>(name, val);
}
// then, standard getters for "name" and "val"
}
在 .../com/yourcompany/legacydefines/Parameters1.java 中:
package com.yourcompany.legacydefines;
import static com.yourcompany.legacydefines.Parameter.newParameter;
interface Parameters1 {
public static Parameter<String> Parameter0001 = newParameter("ABC", "ABCVAL");
// ...
public static Parameter<Integer> Parameter0999 = newParameter("FOO", 0xABCD);
}
在 .../com/yourcompany/legacydefines/Parameters2.java 中:
package com.yourcompany.legacydefines;
import static com.yourcompany.legacydefines.Parameter.newParameter;
interface Parameters2 {
public static Parameter<String> Parameter1001 = newParameter("DEF", "DEFVAL");
// ...
public static Parameter<Integer> Parameter1999 = newParameter("BAR", 0x1002);
}
(等等)
在 .../com/yourcompany/legacydefines/Parameters.java 中:
package com.yourcompany.legacydefines;
interface Parameters extends Parameters1, Parameters2, Parameters3, Parameters4,
Parameters5, Parameters6, Parameters7 {}
然后,在您的其他代码中只需使用 Parameters.Parameter4562