package com.shine;
public class Test {

}

এই ক্লাসের অবজেক্ট তৈরি করা হলঃ

Test obj = new Test();

এবার যদি obj.getClass() কল করা হয় তাহলে নিচের আউটপুট দেখা যায়ঃ

Class com.shine.Test

আবার যদি Class.forName(obj.getClass()) কিংবা Class.forName("com.shine.Test") কল করা হয় তাহলে একই আউটপুট দেখা যায়ঃ

Class com.shine.Test

এ দুটোর মাঝে কী কোন পার্থক্য আছে?

asked 29 May, 00:41

ashif-ar's gravatar image

ashif-ar
453


যখন obj.getClass() কল করা হচ্ছে তখন সরাসরি অবজেক্ট থেকে জানতে চাওয়া হচ্ছে সে কোন ক্লাসের অবজেক্ট ।

আর যখন আপনি Class.forName() কল করছেন তখন যে ক্লাসের জন্য চাচ্ছেন সে ক্লাস ClassLoader এ লোড হয় , এরপর সেটার অবজেক্ট থেকে ক্লাসের নাম দেয় । forName() এর আরেকটা সুবিধা হচ্ছে আপনি চাইলে নিজের বানানো ক্লাসলোডার এবং লোড করার সময় ক্লাসের অবজেক্ট ইন্সটেনশিয়েট করা হবে কিনা বলে দিতে পারবেন । যেমন - আমি যদি String ক্লাস কে লোড করতে এবং সাথে এইটাও চাই যে কোন অবজেক্ট ইন্সটেনশিয়েট হবে না, আর ডিফল্ট ClassLoader এর বদলে আমার নিজের ক্লাসলোডার LoadXYZ ইউস করবো , তাহলে এভাবে দেয়া যায়ঃ

Class.forName(String, false, LoadXYZ);
permanent link

answered 29 Jul, 12:51

ShawonAshraf's gravatar image

ShawonAshraf
1235

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×184
×8

question asked: 29 May, 00:41

question was seen: 113 times

last updated: 29 Jul, 12:51