【发布时间】:2013-03-06 18:20:21
【问题描述】:
不确定我的措辞是否正确。如果您需要更多信息,请告诉我。 我们有一个需求,需要根据系统环境变量来确定变量的类型。
所以,假设我们有以下类
class Test
{
DUMMY_TYPE testVariable;
}
DUMMY_TYPE 是根据系统变量确定的。那么当Java编译时,是否可以让Java在编译类型时使用系统环境变量来确定类型呢?
另外,是否可以在 Eclipse 上以某种方式进行设置,无论我在哪里使用,Eclipse 都会继续在 IDE 上向我显示 DUMMY_TYPE,但是在编译和构建它时,可以根据环境变量将 DUMMY_TYPE 替换为正确的类型?
【问题讨论】:
-
很酷的问题。出于好奇,您介意我问一下这是什么用例吗?
-
简而言之,答案是否定的,但在不知道您要做什么的情况下,很难知道是否有合理的替代方案。
-
这是内部使用的 API 的一部分,通过套接字与专有系统交互。内部系统可以为同一变量流式传输整数或双精度数。它使用环境变量来确定。因此,如果我们能够确定这一点,而不是在编译时维护单独的代码库,将会省去很多麻烦:)。我们能够在 C++ 和 C# 中实现这一点,但 Java 一直给我们带来一些痛苦。
-
你需要的是一个预处理器! [/我鸭子]
-
我还没有使用注释处理的源代码生成部分,但我想您可以使用注释处理器来执行此操作。注释处理器工具 (APT) 在编译之前运行,但在源解析之后运行,它允许您操作源代码。有谁可以通过一些具体的例子来扩展这个想法?我在想像
@ResolveType("env_var_name") Object obj;这样的注释会变成EnvVarValue obj;。
标签: java eclipse compilation primitive-types