Check constructor to return a valid link

I am using Java 1.7.0_79

The code in the questions is this and I instantiate a new object and I want to check if the object has a valid reference after the constructor returns, I check if it is null:

 mClientConnection = null;
 mClientConnection = new XMPPTCPConnection(configBuilder.build());
 if(mClientConnection == null) {
    return false;
 }

      

The constructor implementation contains the following:

public XMPPTCPConnection(XMPPTCPConnectionConfiguration config) {
    super(config);
    this.config = config;
}

      

I'm wondering how can I check that the mClientConnection contains a valid link?

I am using findbugs and I am getting this reported error:

This method contains a redundant check for a known non-zero value against the constant null

+3


source to share


3 answers


It is not a constructor that returns a newly created object. The constructor does not return anything - it has no return type and no instruction return

.

When you create a new object using a statement new

, the Java runtime will allocate memory for the object and initialize it by calling the appropriate constructor. The operator then new

returns a reference to the object, not the constructor.



The operator new

never returns null

, so you never need to check if the link is null

right after use new

.

+3


source


The findbugs warning is correct because a constructor can never return null. In the worst case it can throw an exception, but then it will not hit the last line where you are checking for null.



+3


source


If you want to validate, you need to add a method that does this.

mClientConnection = new XMPPTCPConnection(configBuilder.build());
if (!mClientConnection.isValid())
    return false;

      

Which makes the actual component dependent on what it is and does, and you can write that in a method.

Once you set the value of a variable from an object new

, you can assume that it is not null

(unless you are setting it in null

a different thread)

+2


source







All Articles