在JSP/Java中,如何用s.th替换getter/setter。更通用?
我累了,因为我的豆子里一直都在添加大量的getter/setter。 有没有一种简单的方法可以使用注释来摆脱这项愚蠢的工作? 还是其他方式?第二个例子是短版本,我想运行它,因为不需要封装我的成员(尽管在另一个上下文中可能是必要的)。 在我的现实世界中,我必须访问大约15个类,每个类中有大约10个数据成员,这将产生300个无用的setter/getter 示例TestPerson.java(works): 示例TestPerson.java(不起作用): 示例test.jsp在JSP/Java中,如何用s.th替换getter/setter。更通用?,java,setter,getter,Java,Setter,Getter,我累了,因为我的豆子里一直都在添加大量的getter/setter。 有没有一种简单的方法可以使用注释来摆脱这项愚蠢的工作? 还是其他方式?第二个例子是短版本,我想运行它,因为不需要封装我的成员(尽管在另一个上下文中可能是必要的)。 在我的现实世界中,我必须访问大约15个类,每个类中有大约10个数据成员,这将产生300个无用的setter/getter 示例TestPerson.java(works): 示例TestPerson.java(不起作用): 示例test.jsp <jsp:us
<jsp:useBean id="testperson" class="test.TestPerson" scope="request" />
<html>
<head><title>Test</title></head>
<body>
<h2>Results</h2>${testperson.firstName}<br>
</body>
</html>
试验
结果${testperson.firstName}
只要让您的IDE自动生成它们就行了。例如,在Eclipse中,定义一些属性,右键单击source,选择source,然后生成getter和setter
您是否考虑过使用Groovy脚本语言?它基于Java并生成Java字节码
请参阅此链接:getter和setter是隐式的。解决了这一问题(以及更多问题),并且它支持和。还有scala:
class foo {
@BeanProperty
var s1 : String,
@BeanProperty
var i1 : int
}
您可以使用scala编译器生成java字节码,这将创建这个类,以及相应的私有字段、getter和setter方法
然而,假设您想坚持使用纯java,我怀疑java很快就会看到一流的属性支持。您最好的选择是某种代码生成。可以通过注释和注释处理程序生成这些内容,尽管这可能会适合eclipse。编辑:这就是Lombok(如上所述)正在做的事情。它在编译时根据注释为您生成源代码。试试看。基于模板的代码生成器。您可以使用编写自定义模板,并根据java反射生成文件。这是生成任何文件的最简单方法。您可以通过生成AspectJ或java文件、基于JPA注释的SQL、基于枚举的插入/更新等来生成getter/settest/toString。这是来自eclispe的,他特别要求netbeans@Damodar你在哪里读到的?OP的问题历史记录证实他正在使用Eclipse。或者你把“bean”和“Netbeans”混淆了?这也是一个好主意,但更好的解决方案是在我的sourcesNo问题中完全去掉getter/setter。然而,这迟早会打击到你:)龙目山似乎是我一直在寻找的,你已经回答了你自己的问题。您不需要封装,所以继续公开公共字段。只是不要让道德警察注意到。
<jsp:useBean id="testperson" class="test.TestPerson" scope="request" />
<html>
<head><title>Test</title></head>
<body>
<h2>Results</h2>${testperson.firstName}<br>
</body>
</html>
class foo {
@BeanProperty
var s1 : String,
@BeanProperty
var i1 : int
}