Is List a subclass of List? Why are Java generics not implicitly polymorphic?

No, a List<Dog> is not a List<Animal>. Consider what you can do with a List<Animal> – you can add any animal to it… including a cat. Now, can you logically add a cat to a litter of puppies? Absolutely not. // Illegal code – because otherwise life would be Bad List<Dog> dogs = new ArrayList<Dog>(); … 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

How to pass an object from one activity to another on Android

One option could be letting your custom class implement the Serializable interface and then you can pass object instances in the intent extra using the putExtra(Serializable..) variant of the Intent#putExtra() method. Actual Code: In Your Custom Model/Object Class: public class YourClass implements Serializable { At other class where using the Custom Model/Class: //To pass: intent.putExtra(“KEY_NAME”, … Read more

What is a daemon thread in Java?

A daemon thread is a thread that does not prevent the JVM from exiting when the program finishes but the thread is still running. An example for a daemon thread is the garbage collection. You can use the setDaemon(boolean) method to change the Thread daemon properties before the thread starts.

What’s the difference between SoftReference and WeakReference in Java?

From Understanding Weak References, by Ethan Nicholas: Weak references A weak reference, simply put, is a reference that isn’t strong enough to force an object to remain in memory. Weak references allow you to leverage the garbage collector’s ability to determine reachability for you, so you don’t have to do it yourself. You create a … Read more