
resources.report.rules.pmd.OptimizableToArrayCall.html Maven / Gradle / Ivy
OptimizableToArrayCall
OptimizableToArrayCall
A call to Collection.toArray can use the Collection's size vs an empty Array of the desired type.
This rule is defined by the following XPath expression:
//PrimaryExpression
[PrimaryPrefix/Name[ends-with(@Image, 'toArray')]]
[
PrimarySuffix/Arguments/ArgumentList/Expression
/PrimaryExpression/PrimaryPrefix/AllocationExpression
/ArrayDimsAndInits/Expression/PrimaryExpression/PrimaryPrefix/Literal[@Image='0']
]
Example:
class Foo {
void bar(Collection x) {
// A bit inefficient
x.toArray(new Foo[0]);
// Much better; this one sizes the destination array, avoiding
// a reflection call in some Collection implementations
x.toArray(new Foo[x.size()]);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy