Spring: @Component versus @Bean

@Component Preferable for component scanning and automatic wiring. When should you use @Bean? Sometimes automatic configuration is not an option. When? Let’s imagine that you want to wire components from 3rd-party libraries (you don’t have the source code so you can’t annotate its classes with @Component), so automatic configuration is not possible. The @Bean annotation … Read more

Calling remove in foreach loop in Java [duplicate]

To safely remove from a collection while iterating over it you should use an Iterator. For example: List<String> names = …. Iterator<String> i = names.iterator(); while (i.hasNext()) { String s = i.next(); // must be called before you can call i.remove() // Do something i.remove(); } From the Java Documentation : The iterators returned by … Read more

In Java, what is the best way to determine the size of an object?

You can use the java.lang.instrument package. Compile and put this class in a JAR: import java.lang.instrument.Instrumentation; public class ObjectSizeFetcher { private static Instrumentation instrumentation; public static void premain(String args, Instrumentation inst) { instrumentation = inst; } public static long getObjectSize(Object o) { return instrumentation.getObjectSize(o); } } Add the following to your MANIFEST.MF: Premain-Class: ObjectSizeFetcher Use … Read more

How do I parse command line arguments in Java?

Check these out: http://commons.apache.org/cli/ http://www.martiansoftware.com/jsap/ Or roll your own: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html For instance, this is how you use commons-cli to parse 2 string arguments: import org.apache.commons.cli.*; public class Main { public static void main(String[] args) throws Exception { Options options = new Options(); Option input = new Option(“i”, “input”, true, “input file path”); input.setRequired(true); options.addOption(input); Option … Read more

Difference between DTO, VO, POJO, JavaBeans?

JavaBeans A JavaBean is a class that follows the JavaBeans conventions as defined by Sun. Wikipedia has a pretty good summary of what JavaBeans are: JavaBeans are reusable software components for Java that can be manipulated visually in a builder tool. Practically, they are classes written in the Java programming language conforming to a particular … Read more

RecyclerView onClick

Here is a better and less tightly coupled way to implement an OnClickListener for a RecyclerView. Snippet of usage: RecyclerView recyclerView = findViewById(R.id.recycler); recyclerView.addOnItemTouchListener( new RecyclerItemClickListener(context, recyclerView ,new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { // do whatever } @Override public void onLongItemClick(View view, int position) { // do whatever } }) … Read more