Dealing with “Xerces hell” in Java/Maven?

There are 2.11.0 JARs (and source JARs!) of Xerces in Maven Central since 20th February 2013! See Xerces in Maven Central. I wonder why they haven’t resolved https://issues.apache.org/jira/browse/XERCESJ-1454… I’ve used: <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.11.0</version> </dependency> and all dependencies have resolved fine – even proper xml-apis-1.4.01! And what’s most important (and what wasn’t obvious in the … Read more

Implements vs extends: When to use? What’s the difference?

extends is for extending a class. implements is for implementing an interface The difference between an interface and a regular class is that in an interface you can not implement any of the declared methods. Only the class that “implements” the interface can implement the methods. The C++ equivalent of an interface would be an … Read more

Removing whitespace from strings in Java

st.replaceAll(“\\s+”,””) removes all whitespaces and non-visible characters (e.g., tab, \n). st.replaceAll(“\\s+”,””) and st.replaceAll(“\\s”,””) produce the same result. The second regex is 20% faster than the first one, but as the number consecutive spaces increases, the first one performs better than the second one. Assign the value to a variable, if not used directly: st = … Read more

How to convert an Array to a Set in Java

Like this: Set<T> mySet = new HashSet<>(Arrays.asList(someArray)); In Java 9+, if unmodifiable set is ok: Set<T> mySet = Set.of(someArray); In Java 10+, the generic type parameter can be inferred from the arrays component type: var mySet = Set.of(someArray); Be careful Set.of throws IllegalArgumentException – if there are any duplicate elements in someArray. See more details: … Read more

How to tell Jackson to ignore a field during serialization if its value is null?

To suppress serializing properties with null values using Jackson >2.0, you can configure the ObjectMapper directly, or make use of the @JsonInclude annotation: mapper.setSerializationInclusion(Include.NON_NULL); or: @JsonInclude(Include.NON_NULL) class Foo { String bar; } Alternatively, you could use @JsonInclude in a getter so that the attribute would be shown if the value is not null. A more … Read more

How to fix the Hibernate “object references an unsaved transient instance – save the transient instance before flushing” error

You should include cascade=”all” (if using xml) or cascade=CascadeType.ALL (if using annotations) on your collection mapping. This happens because you have a collection in your entity, and that collection has one or more items which are not present in the database. By specifying the above options you tell hibernate to save them to the database … Read more

Can I catch multiple Java exceptions in the same catch clause?

This has been possible since Java 7. The syntax for a multi-catch block is: try { … } catch (IllegalArgumentException | SecurityException | IllegalAccessException | NoSuchFieldException e) { someCode(); } Remember, though, that if all the exceptions belong to the same class hierarchy, you can simply catch that base exception type. Also note that you … Read more

How do I discover memory usage of my application in Android?

Note that memory usage on modern operating systems like Linux is an extremely complicated and difficult to understand area. In fact the chances of you actually correctly interpreting whatever numbers you get is extremely low. (Pretty much every time I look at memory usage numbers with other engineers, there is always a long discussion about … Read more