class MyDate{
Calendar effectiveDate, cancelDate;
//Getter and setter
}
class Member{
private String fName, lName
private MyDate date;
//getter setters
}
class Policy{
private int policyId
private MyDate date;
//getter setters
}
class Address{
private int addressType
private MyDate date;
//getter setters
}
我还有更多类,例如合同,付款,地址等,它们都引用了日期类
然后我有多个服务调用setEffectiveDate()
Service1{
member.getDate().setEffectiveDate(effDate);
}
Service2{
policy.getDate().setEffectiveDate(effDate);
}
Service3{
contract.getDate().setEffectiveDate(effDate);
address.getDate().setEffectiveDate(addressEffDate);
}
我想在setEffectiveDate()中设置调试指针,以便仅在调用setEffectiveDate()(例如地址对象)时才会挂起执行。
我尝试使用Thread.currentThread()。getStackTrace(),但它为我提供了调用服务类的名称(在这种情况下为Service3),但没有提供调用该方法的实际父对象(地址)。 注意:使用Java 7,RSA / Eclipse
现在我正在使用一种非常麻烦的方法,如下所示
class MyDate{
Calendar effectiveDate, cancelDate;
//Getter and setter
public String source; //This is temporary variable I introduce just for debugging purpose
public setEffectiveDate(Calendar effectiveDate){
this.effectiveDate = effectiveDate;
/* This is temporary code for debugging */
if(this.source.equals("address"){
System.out.println("Called from address"); //Set a debug pointer on this line
}
}
}
然后在地址类中,我将source设置为“ address”
class Address{
private int addressType
private MyDate date;
public getDate(){
this.date.source = "address"; //Temporary code just for debugging
return date;
}
}
任何帮助将不胜感激
答案 0 :(得分:0)
首先,不建议使用Date名称,因为任何开发人员都会认为它是标准Java Date类,而不是您的自定义类。我建议您考虑重命名。
第二,您可以添加条件到断点。在Eclipse中,您勾选了条件复选框,然后可以添加将返回布尔值的内容,例如this.source.equals(“ address”),并且只有在满足该条件时它才会停止。