When is it right for a constructor to throw an exception?

The constructor’s job is to bring the object into a usable state. There are basically two schools of thought on this. One group favors two-stage construction. The constructor merely brings the object into a sleeper state in which it refuses to do any work. There’s an additional function that does the actual initialization. I’ve never … Read more

Should I instantiate instance variables on declaration or in the constructor?

There is no difference – the instance variable initialization is actually put in the constructor(s) by the compiler. The first variant is more readable. You can’t have exception handling with the first variant. There is additionally the initialization block, which is as well put in the constructor(s) by the compiler: { a = new A(); … Read more

ReactJS: Warning: setState(…): Cannot update during an existing state transition

Looks like you’re accidentally calling the handleButtonChange method in your render method, you probably want to do onClick={() => this.handleButtonChange(false)} instead. If you don’t want to create a lambda in the onClick handler, I think you’ll need to have two bound methods, one for each parameter. In the constructor: this.handleButtonChangeRetour = this.handleButtonChange.bind(this, true); this.handleButtonChangeSingle = … Read more

How do I get a PHP class constructor to call its parent’s parent’s constructor?

The ugly workaround would be to pass a boolean param to Papa indicating that you do not wish to parse the code contained in it’s constructor. i.e: // main class that everything inherits class Grandpa { public function __construct() { } } class Papa extends Grandpa { public function __construct($bypass = false) { // only … Read more

Call asynchronous method in constructor?

The best solution is to acknowledge the asynchronous nature of the download and design for it. In other words, decide what your application should look like while the data is downloading. Have the page constructor set up that view, and start the download. When the download completes update the page to display the data. I … Read more

Constructors in Go

There are some equivalents of constructors for when the zero values can’t make sensible default values or for when some parameter is necessary for the struct initialization. Supposing you have a struct like this : type Thing struct { Name string Num int } then, if the zero values aren’t fitting, you would typically construct … Read more

Spring @Autowire on Properties vs Constructor

Yes, option B (which is called constructor injection) is actually recommended over field injection, and has several advantages: the dependencies are clearly identified. There is no way to forget one when testing, or instantiating the object in any other circumstance (like creating the bean instance explicitly in a config class) the dependencies can be final, … Read more

Calling virtual functions inside constructors

Calling virtual functions from a constructor or destructor is dangerous and should be avoided whenever possible. All C++ implementations should call the version of the function defined at the level of the hierarchy in the current constructor and no further. The C++ FAQ Lite covers this in section 23.7 in pretty good detail. I suggest … Read more