我继承了一年前由我公司不再工作的人开发的JSF项目,而且代码很难理解。其中很多似乎是由IDE自动生成的,尤其是类的getter和setter。实际上,每个私有字段都有关联的getter和setter,即使它们没有在项目的任何地方引用
我想在尝试理解项目之前摆脱所有这些无用的代码,但鉴于它是一个JSF项目,bean的属性可能在xhtml文件中引用,因此在使用“show references”命令时不会显示。
有没有办法知道哪些方法真的无用,以便安全地删除它们?
我使用eclipse但是每个允许这样做的工具都会很有帮助!
答案 0 :(得分:1)
除了搜索.fieldname
之外,我认为没有办法。但更重要的是 - 生成的setter和getter,如果它们只是数据对象,则不是理解项目的严重障碍。所以你可以跳过那个清理部分。
答案 1 :(得分:1)
我认为在潜入现有的JSF项目之前,最好先学习和使用JSF。 Getters / setter仅用于获取数据以便在HTML输出中显示,并从HTML表单输入中设置请求参数。例如。视图中的<h:inputText value="#{bean.foo}" />
需要bean.getFoo()
来显示值,并bean.setFoo(String value)
来设置提交的值。所以,请将它们留在那里,专注于行动方法。
对于这些工具,Eclipse不提供这方面的工具/设施,因为它们可以通过反射而不是直接引用来调用。几乎不可能检测到这一点。至少,最好知道setter永远不会被调用仅输出组件,如<h:outputText value="#{bean.foo}" />
或嵌套bean,如<h:inputText value="#{bean.nested.foo}" />
。但是,只要将嵌套bean作为托管属性注入,就必须使用setter。
我自己只是将吸气剂/孵化器隐藏在远离整个班级的底部。动作方法(至少是非getter / setter方法)就在构造函数之后。您甚至可以将IDE配置为在自动生成期间将它们放在那里。