Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSP/Java中,如何用s.th替换getter/setter。更通用?_Java_Setter_Getter - Fatal编程技术网

在JSP/Java中,如何用s.th替换getter/setter。更通用?

在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

我累了,因为我的豆子里一直都在添加大量的getter/setter。 有没有一种简单的方法可以使用注释来摆脱这项愚蠢的工作? 还是其他方式?第二个例子是短版本,我想运行它,因为不需要封装我的成员(尽管在另一个上下文中可能是必要的)。 在我的现实世界中,我必须访问大约15个类,每个类中有大约10个数据成员,这将产生300个无用的setter/getter

示例TestPerson.java(works):

示例TestPerson.java(不起作用):

示例test.jsp

<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
}