You can not do it directly via a constructor, and your terminology is a little off: being instantiated means it is not null. (That is, you cannot instantiate to null.) You can use a static factory method, however:public class objA { public objA() { /* usual constructor code here*/ } public static objA newInstance(objB blah) { if ( /* some condition here */ ) { return new objA();