Tôi gặp sự cố với quy tắc PMD Avoid instantiating new objects inside loops
. Dưới đây là một số mã ví dụ:PMD: Tránh tạo đối tượng mới trong vòng lặp
import java.awt.Dimension;
public class PMDDemo {
public static void main(final String[] args) {
final Dimension[] arr = new Dimension[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = new Dimension(i, i); // rule violation here
}
}
}
PMD mang lại cho tôi vi phạm quy tắc nêu trên ở vị trí đáng kể trong các mã. Làm cách nào để tạo ra các trường hợp n của một lớp học mà không cần tạo chúng trong vòng lặp?
Tôi biết rằng một số quy tắc của PMD đang gây tranh cãi (như quy tắc onlyOneExit). Nhưng đến giờ tôi ít nhất cũng hiểu ý tưởng đằng sau chúng. Tôi không hiểu lý do đằng sau quy tắc này. Ai đó có thể giúp tôi với?
Không có ý nghĩa gì trong kịch bản này (hoặc trong hầu hết các trường hợp mà tôi có thể nghĩ) ... – assylias
Điều tôi cho là quy tắc này đang cố gắng lưu trữ là đối tượng gộp cho các đối tượng sống ngắn và tôi hiểu một ý tưởng hay trong những ngày này: http://programmers.stackexchange.com/questions/149563/should-we-avoid-object-creation-in-java –
@assylias Bạn có nghĩ về một kịch bản có ý nghĩa không? Nếu không, tôi sẽ tắt quy tắc. – brimborium