How does autowiring work in Spring?

First, and most important – all Spring beans are managed – they “live” inside a container, called “application context”. Second, each application has an entry point to that context. Web applications have a Servlet, JSF uses a el-resolver, etc. Also, there is a place where the application context is bootstrapped and all beans – autowired. … Read more

How to for each the hashmap? [duplicate]

I know I’m a bit late for that one, but I’ll share what I did too, in case it helps someone else : HashMap<String, HashMap> selects = new HashMap<String, HashMap>(); for(Map.Entry<String, HashMap> entry : selects.entrySet()) { String key = entry.getKey(); HashMap value = entry.getValue(); // do what you have to do here // In your … Read more

Round a double to 2 decimal places [duplicate]

Here’s an utility that rounds (instead of truncating) a double to specified number of decimal places. For example: round(200.3456, 2); // returns 200.35 Original version; watch out with this public static double round(double value, int places) { if (places < 0) throw new IllegalArgumentException(); long factor = (long) Math.pow(10, places); value = value * factor; … Read more

Get generic type of class at runtime

As others mentioned, it’s only possible via reflection in certain circumstances. If you really need the type, this is the usual (type-safe) workaround pattern: public class GenericClass<T> { private final Class<T> type; public GenericClass(Class<T> type) { this.type = type; } public Class<T> getMyType() { return this.type; } }

When to use static methods

One rule-of-thumb: ask yourself “Does it make sense to call this method, even if no object has been constructed yet?” If so, it should definitely be static. So in a class Car you might have a method: double convertMpgToKpl(double mpg) …which would be static, because one might want to know what 35mpg converts to, even … Read more

Convert java.util.Date to java.time.LocalDate

Short answer Date input = new Date(); LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); Explanation Despite its name, java.util.Date represents an instant on the time-line, not a “date”. The actual data stored within the object is a long count of milliseconds since 1970-01-01T00:00Z (midnight at the start of 1970 GMT/UTC). The equivalent class to java.util.Date in JSR-310 is … Read more

How to split a string with any whitespace chars as delimiters

Something in the lines of myString.split(“\\s+”); This groups all white spaces as a delimiter. So if I have the string: “Hello[space character][tab character]World” This should yield the strings “Hello” and “World” and omit the empty space between the [space] and the [tab]. As VonC pointed out, the backslash should be escaped, because Java would first … Read more

How to convert an Iterator to a Stream?

One way is to create a Spliterator from the Iterator and use that as a basis for your stream: Iterator<String> sourceIterator = Arrays.asList(“A”, “B”, “C”).iterator(); Stream<String> targetStream = StreamSupport.stream( Spliterators.spliteratorUnknownSize(sourceIterator, Spliterator.ORDERED), false); An alternative which is maybe more readable is to use an Iterable – and creating an Iterable from an Iterator is very easy … Read more