Java 在Eclipse中查找非引用类属性

Java 在Eclipse中查找非引用类属性,java,eclipse,Java,Eclipse,我想知道是否还有其他方法可以找到特定类中未被其他类引用的属性(我的意思是,未使用的属性) 我的方式是这样的,例如,我有一个类: public class EABHeaderInformation implements Serializable{ /** * */ private static final long serialVersionUID = -4986763088497593972L; //BargainFinder - AlternateBooking private int

我想知道是否还有其他方法可以找到特定类中未被其他类引用的属性(我的意思是,未使用的属性)

我的方式是这样的,例如,我有一个类:

public class EABHeaderInformation implements Serializable{
/**
 * 
 */
private static final long serialVersionUID = -4986763088497593972L;

//BargainFinder - AlternateBooking
private int multiTicketSequencdNmbr;
private String resBookDesigCode;
private LocalDateTime departureDate;
private LocalDateTime lastTicketingDate;
private List<String> text;
private String validatingCarrierCode;

public String getValidatingCarrierCode() {
    return validatingCarrierCode;
}
public void setValidatingCarrierCode(String validatingCarrierCode) {
    this.validatingCarrierCode = validatingCarrierCode;
}
public int getMultiTicketSequencdNmbr() {
    return multiTicketSequencdNmbr;
}
public void setMultiTicketSequencdNmbr(int multiTicketSequencdNmbr) {
    this.multiTicketSequencdNmbr = multiTicketSequencdNmbr;
}
public String getResBookDesigCode() {
    return resBookDesigCode;
}
public void setResBookDesigCode(String resBookDesigCode) {
    this.resBookDesigCode = resBookDesigCode;
}
public LocalDateTime getDepartureDate() {
    return departureDate;
}
public void setDepartureDate(LocalDateTime departureDate) {
    this.departureDate = departureDate;
}
public LocalDateTime getLastTicketingDate() {
    return lastTicketingDate;
}
public void setLastTicketingDate(LocalDateTime lastTicketingDate) {
    this.lastTicketingDate = lastTicketingDate;
}
public List<String> getText() {
    return text;
}
public void setText(List<String> text) {
    this.text = text;
}}
公共类EABHeaderInformation实现可序列化{
/**
* 
*/
私有静态最终长serialVersionUID=-4986763088497593972L;
//讨价还价者-交替预订
专用int multiTicketSequencdNmbr;
私有字符串resBookDesigCode;
私有LocalDateTime离开日期;
私有LocalDateTime lastTicketingDate;
私有列表文本;
私有字符串验证CarrierCode;
公共字符串getValidatingCarrierCode(){
返回validatingCarrierCode;
}
公共void setValidatingCarrierCode(字符串validatingCarrierCode){
this.validatingCarrierCode=validatingCarrierCode;
}
public int getMultiTicketSequencdNmbr(){
返回multiTicketSequencdNmbr;
}
公共无效设置multiTicketSequencdNmbr(int multiTicketSequencdNmbr){
this.multicketsequencdnmbr=multicketsequencdnmbr;
}
公共字符串getResBookDesigCode(){
返回resBookDesigCode;
}
公共无效setResBookDesigCode(字符串resBookDesigCode){
this.resBookDesigCode=resBookDesigCode;
}
public LocalDateTime getDepartureDate(){
返回出发日期;
}
public void setDepartureDate(LocalDateTime departureDate){
this.departureDate=离开日期;
}
公共LocalDateTime getLastTicketingDate(){
返回上次票务日期;
}
公共作废设置lastTicketingDate(LocalDateTime lastTicketingDate){
this.lastTicketingDate=lastTicketingDate;
}
公共列表getText(){
返回文本;
}
public void setText(列表文本){
this.text=文本;
}}
这是一个带有getter和setter的简单POJO。我使用Eclipse中的“开放调用层次结构”检查每个getter和setter,以确定该属性是否被其他人使用。但当我在比这更大的班级工作时,这需要很多时间


那么,有没有更快的方法?感谢您的回复。

Eclipse已经可以为未使用的私有成员创建警告或错误,但对于公共成员,Eclipse的立场始终是它不是一个有价值的功能。我倾向于不同意,因为许多用户的有用范围有限(特别是工作区中的所有项目或项目的子集)。看,还有

有一些第三方选项,例如和示例


另请参见和答案。

您可以通过任何字段或方法
Ctrl
-
Shift
-
G
来查找工作区中的用法,问题是,如果一个字段或其setter/getter的可见性高于private Eclipse,那么Eclipse就无法可靠地知道它是否被使用(正在使用的项目可能没有被导入或关闭)。因此,“查找用法”或“开放调用层次结构”不会返回100%可靠的信息(除非您知道)。下一个问题是:为什么一开始就有那么多潜在的未使用字段?如果你不需要它们,就不要添加它们。如果你不再使用它们,那么当你认为它们可能不再使用时,检查它们的用法。除了我上面写的,一个简单的“黑客”将是注释getter/setter(可能还有字段),并观察编译器错误(你可能需要一个干净的构建,即重新编译所有内容)这个项目中有很多类用于映射xml数据。但正如我所提到的,它们中有很多甚至没有被使用。而且我相信最好的解决方案是不添加它们,但是这段代码以前是有人写的,我负责重构。感谢回复:)通过阅读所有这些链接,我了解到即使是“开放调用层次结构”也不能100%安全地找到未使用的字段。但我发现这个小插件很有用,它会让我的工作更轻松。谢谢