Something () { CallOnOtherInstance1 other = this; while (true) { if (other.something == null) { if (other.isDuplicate()) { final CallOnOtherInstance1 recursion = other.getOriginal(); other = recursion; continue; } else { other.something = new Something(); } } return other.something; } }