I'm finding that some of the types of preconditions I would like to write cannot be done using Preconditions without object creation for the non-error case (like an INDArray.shape() call).
Of course, they can be done with an if statement and IllegalArgumentException, but that's more verbose to write.

Edit: some useful NDArray formatting values could potentially be:

%ndRank

%ndShape

%ndStride

%ndLength

%ndDataType

%ndShapeInfo

%ndValues[10]

Edit 2: class names would also be useful. For example, Class.getSimpleName() results in object creation on each call.