Skip to main content

Utils Package

The org.apache.juneau.commons.utils package provides general-purpose utility classes for common operations including string manipulation, collection operations, class utilities, file operations, and more.

Key Classes​

Utils​

Common utility methods for working with collections, strings, objects, and other common operations.

import static org.apache.juneau.commons.utils.Utils.*;

// Array and list creation
String[] arr = a("a", "b", "c");
List<String> list = l("a", "b", "c");

// Object equality with null handling
eq("Hello", "Hello"); // true
eq(null, null); // true
eq("Hello", null); // false

// Null-safe operations
nn(obj); // Returns true if obj is not null
n(obj); // Returns true if obj is null
isArray(obj); // Returns true if obj is an array

// Empty/not-empty checks
e(""); // true (empty string)
e(null); // true (null is empty)
e("Hello"); // false
ne("Hello"); // true (not empty)
ne(""); // false

// Hash code generation
int hash = h("Hello", 123, true);

// Object identity
String id = id(obj); // Returns "ClassName@hashcode"

// Memoization
Supplier<String> memoized = mem(() -> expensiveComputation());
ResettableSupplier<String> resettable = memr(() -> expensiveComputation());

// Optional utilities
Optional<String> opt = opt("value");
Optional<String> empty = opte();

StringUtils​

Reusable string utility methods for formatting, parsing, and manipulation.

import static org.apache.juneau.commons.utils.StringUtils.*;

// Format strings (supports both MessageFormat and printf styles)
format("Hello %s, you have %d items", "John", 5);
format("Hello {0}, you have {1} items", "John", 5);

// Case-insensitive comparison
equalsIgnoreCase("Hello", "hello"); // true

// String splitting and joining
split("a,b,c", ","); // Returns ["a", "b", "c"]
join(List.of("a", "b", "c"), ","); // Returns "a,b,c"

// Trimming and padding
trim(" hello "); // Returns "hello"
padLeft("42", 5, '0'); // Returns "00042"
padRight("42", 5, '0'); // Returns "42000"

CollectionUtils​

Utility methods for working with collections, arrays, and maps.

import static org.apache.juneau.commons.utils.CollectionUtils.*;

// Create collections
List<String> list = listb(String.class)
.add("a", "b", "c")
.build();

Map<String, Integer> map = mapb(String.class, Integer.class)
.add("one", 1)
.add("two", 2)
.build();

Set<String> set = setb(String.class)
.add("a", "b", "c")
.build();

// Array utilities
String[] arr = array(String.class, "a", "b", "c");
List<String> listFromArray = asList(arr);

ClassUtils​

Utility methods for working with classes, including type resolution and class loading.

import static org.apache.juneau.commons.utils.ClassUtils.*;

// Get class from name
Class<?> clazz = forName("java.lang.String");

// Check if class exists
boolean exists = classExists("java.lang.String");

// Get all superclasses
List<Class<?>> superclasses = getSuperclasses(String.class);

FileUtils​

Utility methods for file operations.

import static org.apache.juneau.commons.utils.FileUtils.*;

// Read file as string
String content = readFile("path/to/file.txt");

// Write string to file
writeFile("path/to/file.txt", "content");

// Check if file exists
boolean exists = fileExists("path/to/file.txt");

// Get file extension
String ext = getExtension("file.txt"); // Returns "txt"

IoUtils​

Utility methods for I/O operations.

import static org.apache.juneau.commons.utils.IoUtils.*;

// Read input stream as string
String content = read(InputStream);

// Write string to output stream
write(OutputStream, "content");

// Copy streams
copy(InputStream, OutputStream);

DateUtils​

Utility methods for date and time operations.

import static org.apache.juneau.commons.utils.DateUtils.*;

// Format dates
String formatted = formatDate(LocalDateTime.now(), "yyyy-MM-dd");

// Parse dates
LocalDateTime parsed = parseDate("2023-12-25", "yyyy-MM-dd");

// Get current timestamp
long timestamp = getCurrentTimestamp();

AnnotationUtils​

Utility methods for working with annotations.

import static org.apache.juneau.commons.utils.AnnotationUtils.*;

// Check if annotation is present
boolean hasAnnotation = hasAnnotation(MyClass.class, MyAnnotation.class);

// Get annotation
MyAnnotation annotation = getAnnotation(MyClass.class, MyAnnotation.class);

// Get all annotations
List<Annotation> annotations = getAnnotations(MyClass.class);

AssertionUtils​

Utility methods for argument validation and assertions.

import static org.apache.juneau.commons.utils.AssertionUtils.*;

// Assert non-null
String value = assertArgNotNull("value", obj);

// Assert not empty
String str = assertArgNotEmpty("str", str);

// Assert condition
assertArg("value > 0", value > 0);

ThrowableUtils​

Utility methods for working with exceptions and throwables.

import static org.apache.juneau.commons.utils.ThrowableUtils.*;

// Get root cause
Throwable rootCause = getRootCause(throwable);

// Get stack trace as string
String stackTrace = getStackTrace(throwable);

// Check if throwable is of type
boolean isIOException = isInstanceOf(throwable, IOException.class);

Common Patterns​

Fluent Collection Building​

import static org.apache.juneau.commons.utils.CollectionUtils.*;

List<String> list = listb(String.class)
.add("a", "b", "c")
.addIf(condition, "d")
.sorted()
.unmodifiable()
.build();

String Formatting​

import static org.apache.juneau.commons.utils.StringUtils.*;

// Mixed format styles
String result = format("User {0} has %d items", "Alice", 10);
// Returns: "User Alice has 10 items"

Null-Safe Operations​

import static org.apache.juneau.commons.utils.Utils.*;

// Safe equality check
if (eq(obj1, obj2)) {
// Objects are equal (handles nulls)
}

// Safe null checks
if (nn(obj)) {
// Object is not null
}
if (n(obj)) {
// Object is null
}

// Empty checks
if (e(collection)) {
// Collection is null or empty
}
if (ne(collection)) {
// Collection is not null and not empty
}

See Also​

Discussion

Share feedback or follow-up questions for this page directly through GitHub.