Ryan Delucchi hỏi here ở comment # 3 vào câu trả lời Tom Hawtin 's:Tại sao Class.newInstance() "ác"?
tại sao Class.newInstance() "ác"?
này để đáp ứng với các mẫu mã:
// Avoid Class.newInstance, for it is evil.
Constructor<? extends Runnable> ctor = runClass.getConstructor();
Runnable doRun = ctor.newInstance();
như vậy, tại sao nó ác?
Thực ra nhìn thấy câu trả lời cho câu hỏi này: người ta có thể nói điều này về nhiều cách sử dụng phản chiếu ... không chỉ Class.newInstance(). Vì vậy, điều này thực sự là một quan sát chung rằng "phản ánh đánh bại kiểm tra thời gian biên dịch" ... mà thường là điểm phản ánh. –
Trẻ em những ngày này, Oh yea họ ném xung quanh từ "EVIL" nhưng họ chưa bao giờ thậm chí SEEN một chương trình COBOL hoặc FORTRAN! Bạn muốn "EVIL" hãy xem chương trình FORTRAN 20 năm đã được chuyển từ dự án đến dự án bởi tinker's với một nền mô phỏng và không có CS ảnh hưởng gì đến vậy! Bây giờ là "EVIL!" – NoMoreZealots
Xem thêm http://stackoverflow.com/q/36272566/3888450 –