【发布时间】:2016-04-22 09:43:58
【问题描述】:
我正在开发一个包含一些对象类的 Maven 项目。我的代码围绕在 IntraAnet 和 IntErnet 域中独立的三个不同环境中控制特定功能的开始时间和结束时间。所以我的对象结构看起来像:
IntrAnet:
env1:
startTime:
endTime:
env2:
startTime:
endTime
IntErnet:
env1:
startTime:
endTime:
...
现在,在我的控制器类中,我想根据用户所在的环境和域来使用开始时间和结束时间。所以我的代码如下所示:
if(domain == "IntrAnet") {
if(env == "env1") {
String startTime = overallClassVO.env1IntrAVO.getStartTime();
String endTime = overallClassVO.env1IntrAVO.getEndTime();
...
}
if(env == "env2") {
String startTime = overallClassVO.env2IntrAVO.getStartTime();
String endTime = overallClassVO.env2IntrAVO.getEndTime();
...
}
}
if(domain == "IntErnet") {
if(env == "env1") {
String startTime = overallClassVO.env1IntErVO.getStartTime();
String endTime = overallClassVO.env1IntErVO.getEndTime();
...
}
if(env == "env2") {
String startTime = overallClassVO.env2IntErVO.getStartTime();
String endTime = overallClassVO.env2IntErO.getEndTime();
...
}
}
我的代码有点复杂,但这是大体思路。我知道反射对于通过在运行时调用基于对象的类来简化重复代码很有用,但我想知道在这种情况下是否可以使用反射。
【问题讨论】:
-
让我们解决一件事:that's not how you compare Strings.
-
你不需要使用反射。您可以使用
Map,无论如何您几乎肯定会在反射方法中使用它。env1IntrAVO等是什么类型的? -
我会说你不需要地图;你会想在这里使用依赖注入。
-
@Radiodef:除了允许导入所选的 DI 库外,Maven 与此几乎没有关系。
-
我觉得这个问题很不清楚。如果您的对象结构包括 IntrAnet 和 IntErnet,那么所有这些行为可能都应该在这些对象中,而且我无法想象反射如何在这里提供帮助。反思做什么?
标签: java reflection