Conditional breakpoint on outer class of superclass of anonymous class
If that title sounds cryptic, let me show you the class structure (in API) that I have to work with:
public class Model {
public final void foo() {
// breakpoint is here
}
}
public class View1 {
private Model view1Model = new Model() {
...
}
}
public class View2 {
private Model view2Model = new Model() {
...
}
}
As you see, Model is the superclass of both anonymous classes.
I want to change the breakpoint to a conditional breakpoint that breaks only when the outer class of the anonymous class of `xxxModel` is `View2`. The class Model does not hold a reference to the outer class.
When broken at the breakpoint, I can see in the inspector that `this.this@0 == View1@1441` and I can add this phrase (`this.this@0`) as a watch (even though it's colored red as if an error, it works.) However, if I add that same phrase to the breakpoint then the VM cannot handle it and I get a breakpoint error when the breakpoint is reached.
[edit] I meant anonymous classes, not inner (although inner classes of Model also appear in the API)
请先登录再写评论。
The need for this has subsided, as I've debugged my way through the API with more effort, but it would be nice to eventually have an answer anyway.
I suppose you can try using conditional breakpoint with the condition that checks the class name like this.getClass() or use wildcards in the class filter.
Thanks, that seems to work.
this.getClass().getName().startsWith("View2")