@Nullable
    @Override
    public T newInstance(Object... args) {
        Object[] expanded = new Object[template.length];
        System.arraycopy(template, 0, expanded, 0, template.length);
        int j = 0;
        for (int i = 0; i < expanded.length; i++) {
            if (expanded[i] == null) {
                expanded[i] = args[j++];
            }
        }
        return expr.newInstance(expanded);
    }
{@code ConstantHidingExpression} removes constants from the argument list and injects them back into the result chain
@param <T>
querydsl-core/src/main/java/com/querydsl/core/support/ConstantHidingExpression.java