What is the difference between using constructor vs getInitialState in React / React Native?

The two approaches are not interchangeable. You should initialize state in the constructor when using ES6 classes, and define the getInitialState method when using React.createClass. See the official React doc on the subject of ES6 classes. class MyComponent extends React.Component { constructor(props) { super(props); this.state = { /* initial state */ }; } } is … Read more

Can an abstract class have a constructor?

Yes, an abstract class can have a constructor. Consider this: abstract class Product { int multiplyBy; public Product( int multiplyBy ) { this.multiplyBy = multiplyBy; } public int mutiply(int val) { return multiplyBy * val; } } class TimesTwo extends Product { public TimesTwo() { super(2); } } class TimesWhat extends Product { public TimesWhat(int … Read more

What are the rules for calling the base class constructor?

Base class constructors are automatically called for you if they have no argument. If you want to call a superclass constructor with an argument, you must use the subclass’s constructor initialization list. Unlike Java, C++ supports multiple inheritance (for better or worse), so the base class must be referred to by name, rather than “super()”. … Read more

How to initialize HashSet values by construction?

There is a shorthand that I use that is not very time efficient, but fits on a single line: Set<String> h = new HashSet<>(Arrays.asList(“a”, “b”)); Again, this is not time efficient since you are constructing an array, converting to a list and using that list to create a set. When initializing static final sets I … Read more

What is a clean “pythonic” way to implement multiple constructors?

Actually None is much better for “magic” values: class Cheese(): def __init__(self, num_holes = None): if num_holes is None: … Now if you want complete freedom of adding more parameters: class Cheese(): def __init__(self, *args, **kwargs): #args — tuple of anonymous arguments #kwargs — dictionary of named arguments self.num_holes = kwargs.get(‘num_holes’,random_holes()) To better explain the … Read more

Do the parentheses after the type name make a difference with new?

Let’s get pedantic, because there are differences that can actually affect your code’s behavior. Much of the following is taken from comments made to an “Old New Thing” article. Sometimes the memory returned by the new operator will be initialized, and sometimes it won’t depending on whether the type you’re newing up is a POD … Read more

Calling the base constructor in C#

Modify your constructor to the following so that it calls the base class constructor properly: public class MyExceptionClass : Exception { public MyExceptionClass(string message, string extrainfo) : base(message) { //other stuff here } } Note that a constructor is not something that you can call anytime within a method. That’s the reason you’re getting errors … Read more