May 2020
Beginner
267 pages
7h 37m
English
Tony Hoare calls null the “billion-dollar mistake.” It’s a mistake, and that’s why you should get in the habit of forbidding code from using null. If you have a reference to an object that might be null, you have to remember to do a null check before trying to call any method of it. But since there’s no obvious difference between a null reference and a non-null one, it’s too easy to forget and get a NullPointerException.
The most future-proof way to avoid issues is to use an alternative when possible.
It is usually not a good idea to declare a variable until you know what value it should hold. For complex initialization, move all the initialization logic to a method. For example, instead of doing this:
public String getEllipsifiedPageSummary(Path path) {
String summary = null;
Resource resource = this.resolver.resolve(path);
if (resource.exists()) {
ValueMap properties = resource.getProperties();
summary = properties.get("summary");
} else {
summary = "";
}
return ellipsify(summary);
}
Do the following:
public String getEllipsifiedPageSummary(Path path) { var summary = getPageSummary(path); return ellipsify(summary); } public String getPageSummary(Path path) { var resource = this.resolver.resolve(path); if (!resource.exists()) { return ""; } var properties = resource.getProperties(); return properties.get("summary"); ...