Class.newInstance() থেকে কনস্ট্রাক্টর রিফ্লেকশন
অবচিত Class.newInstance()-কে স্পষ্ট কনস্ট্রাক্টর অনুসন্ধান ও আহ্বান দিয়ে প্রতিস্থাপন করুন।
কোড তুলনা
✕ Deprecated Class.newInstance()
Plugin plugin = pluginClass.newInstance();
✓ Constructor reflection
Plugin plugin = pluginClass
.getDeclaredConstructor()
.newInstance();
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
সমর্থিত API
অবচিত Class.newInstance()-এর ব্যবহার সরিয়ে দেয়।
স্পষ্ট কনস্ট্রাক্টর
অনুরোধ করা সিগনেচার দৃশ্যমান থাকে এবং আর্গুমেন্ট নিতে পারে।
সঠিক ব্যর্থতা
কনস্ট্রাক্টরের এক্সসেপশন InvocationTargetException-এর মাধ্যমে প্রকাশিত হয়।
পুরনো পদ্ধতি
Class.newInstance()
আধুনিক পদ্ধতি
স্পষ্ট কনস্ট্রাক্টর অনুসন্ধান
JDK থেকে
9
কঠিনতা
মধ্যম
JDK সমর্থন
Class.newInstance() থেকে কনস্ট্রাক্টর রিফ্লেকশন
উপলব্ধ
JDK 9-এ (সেপ্টেম্বর 2017) Class.newInstance() অবচিত হওয়ার পর থেকে প্রস্তাবিত।
কীভাবে কাজ করে
Class.newInstance() অবচিত, কারণ এটি কনস্ট্রাক্টর থেকে নিক্ষিপ্ত এক্সসেপশনের কম্পাইল-টাইম পরীক্ষা এড়াতে পারে এবং শুধু শূন্য-আর্গুমেন্ট কনস্ট্রাক্টর সমর্থন করে। স্পষ্ট Constructor অনুসন্ধান নির্বাচিত সিগনেচার দৃশ্যমান করে এবং উপযুক্ত রিফ্লেকশন এক্সসেপশনের মাধ্যমে রিফ্লেকটিভ আহ্বানের ব্যর্থতা জানায়। মডিউল ও অ্যাক্সেসের নিয়ম এখনও প্রযোজ্য; এই প্যাটার্ন এনক্যাপসুলেশন এড়ানোর পরামর্শ দেয় না।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ