I\'m developing with Android Studio/IntelliJ IDEA.
I have enabled the inspection check called "Constant conditions & exceptions" that shows a warning if
Unfortunately marked as "right answer" solution is of date. But I found equivalent for me solution.
The new versions of IDE work correctly with static methods. So the example from the question won't throw warning anymore.
TextUtils#isEmpty(String);
public static boolean isEmpty(CharSequence str) {
// your checks
}
You could use //noinspection ConstantConditions
that will remove the NPE warning for the following line, like this:
String encoding = contentEncoding == null ? null : contentEncoding.getValue();
//noinspection ConstantConditions
if (!TextUtils.isEmpty(encoding) && encoding.equalsIgnoreCase("gzip")) {
inputStream = new GZIPInputStream(entity.getContent());
} else {
inputStream = entity.getContent();
}
You can use @SuppressWarnings("ConstantConditions")
annotation.
@SuppressWarnings("ConstantConditions")
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int indexViewType) {
if (inflater == null) {
inflater = LayoutInflater.from(parent.getContext());
}
ItemViewProvider provider = getProviderByIndex(indexViewType);
provider.adapter = MultiTypeAdapter.this;
return provider.onCreateViewHolder(inflater, parent);
}
Please check the details here
You can look into the link that Peter Gromov mention in his answer.
Created some simple classes that resemble your setup:
A class with a method annotated with @Nullable
:
The TextUtil
class with it's isEmpty
method:
And finally the main class calling the TextUtil#isEmpty
:
Now if you enter the File -> Settings...
and go to Inspections ->Constant conditions & exceptions
part you can change the Configure Assert/Check Methods
to cater for your isEmpty
method:
Add a new IsNull
check method:
Enter the TextUtil
class, isEmpty
method and CharSequence
parameter:
This gives this Assert/Check Method Configuration
window:
Press Ok
and then Ok
again to go back to the editor view and you'll see that the inspection disappeared:
You are actually telling IntelliJ that the isEmpty
method is doing a null check on the str
parameter.
See http://www.jetbrains.com/idea/webhelp/configuring-check-assert-methods.html for IDEA 12. In IDEA 13 EAP, you can add method contract: http://youtrack.jetbrains.com/issue/IDEA-93372