2014-12-03 52 views
2

我有一个具有大约30个变量的操作类。这些领域的获取者和设置者弄乱了我的代码并添加了不必要的行。有没有办法反映所有的private字段,并使它们对Struts“可见”?Struts 2中的反射

+0

您想在哪里使用此功能?在表示层(屏幕)上? – 2014-12-03 09:00:26

+0

是@Buhake Sindi。 Struts似乎只能通过getter和setter来访问变量,但这不是好的做法 – 2014-12-03 11:10:50

+3

@VladMatvei它*是一种在Java Beans中使用getter和setter的好习惯,但您的问题是额外序号+1。 – 2014-12-03 11:18:01

回答

0

听起来像是对我错误的做法。

在Java的OO和封装概念中,获取器和设置器是非常基础的。如果您不喜欢编写 getters和setter或者使用像Lombok(http://projectlombok.org/index.html)这样的框架,或者选择其他语言,例如Gradle。

大多数(如果不是全部的话)Java代码使用它们,所以也许你认为它们搞砸了代码有点不对。一个好的IDE应该可以帮助你摆脱困境。

哦,反射增加了大量的性能开销,完全不是为了短路访问私有成员。

0

实际上你并不需要getter和setter来让OGNL工作。但不要这样做。

如果您的担心是更大类的“开销”,那么创建一个封装视图状态并仅公开该对象的对象。您也可以通过ModelDriven界面来完成此操作;一些注意事项适用。

获得者和设置者在Java中是相同的课程。习惯它。使用自动折叠简单的getXxx/setXxx方法的IDE。开始使用演示者模式来封装视图状态并将其用作Web和业务域对象之间的翻译层。

+0

我的实体是不可变的,我猜ModelDriven接口不适用于我。但是我可以写一个DTO对象,这会是一个好方法吗? – 2014-12-03 22:57:38