When you need to provide junittest cases for your classes this is mostly used.
There will be many classes which hold business logic in private methods, and private constructors.
Testing those business functionality can not be done with out accessing them in your Test class.
Yes. We can use reflection API for accessing private members of the class in our test classes.