What is the best practice for referencing nested objects?
Say I have the following:
class Outer {
private InnerA innerA;
//getters and setters
}
class InnerA {
private InnerB innerB;
//getters and setters
}
class InnerB {
private String someString;
//getters and setters
}
and in my controller or service class I need to check the someString String variable of the InnerB class to make sure it is not null or not empty so I do this:
if (getOuter().getInnerA().getInnerB().getSomeString() != null && !getOuter().getInnerA().getInnerB().getSomeString().equalsIgnoreCase("") {
//do something
}
To me this looks messy and could have issues if the nested objects themselves are null.
Do I create getters ans setters in the parent objects for the child objects checking for null? Just wondering what the best practice was if any and/or what some of you do in your code?
If any of those objects can be null, then you have to check for null before calling a getter on this object, of course.
But this kind of chaining is a bad smell of a lack of encapsulation (anemic objects having just data, and no behavior). You're violating the law of Demeter : don't talk to strangers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With