შეუძლია თუ არა Java Reflect API-ს წვდომა კერძო ველებზე?
შეუძლია თუ არა Java Reflect API-ს წვდომა კერძო ველებზე?

ვიდეო: შეუძლია თუ არა Java Reflect API-ს წვდომა კერძო ველებზე?

ვიდეო: შეუძლია თუ არა Java Reflect API-ს წვდომა კერძო ველებზე?
ვიდეო: how to access private variables from another class in java using Reflection Api 2024, მაისი
Anonim

წვდომა პირად ველებზე გამოყენებით Reflection API

Reflection API-ს შეუძლია წვდომა ა კერძო სფერო მასზე setAccessible(true)-ის გამოძახებით ველი მაგალითად. იპოვეთ კლასის ნიმუში, რომელსაც აქვს კერძო ველები და პირადი მეთოდები

ანალოგიურად, შეგიძლიათ Java-ში კლასის გარედან წვდომა კერძო მეთოდზე?

საერთოდ კერძო მეთოდებს შეუძლიათ ჩვეულებრივ წვდომა მხოლოდ შიგნიდან არის შესაძლებელი კლასი . Ჩვენ შეგვიძლია არ წვდომა იმათ კერძო მეთოდები გარე კლასიდან . თუმცა, შესაძლებელია გარე კლასიდან კერძო მეთოდებზე წვდომისთვის გამოყენებით ჯავის Reflection API.

გარდა ზემოთ, აქვს თუ არა ჯავას პირადი წვდომა? თუ მეთოდი ან ცვლადი მონიშნულია როგორც კერძო ( აქვს The პირადი წვდომა მას მინიჭებული მოდიფიკატორი), მაშინ მხოლოდ კოდი იმავე კლასში შეიძლება წვდომა ცვლადი, ან გამოიძახეთ მეთოდი. ქვეკლასებში კოდი არ შეიძლება წვდომა ცვლადი ან მეთოდი და არც შეიძლება კოდირება რომელიმე გარე კლასიდან.

უფრო მეტიც, როგორ შემიძლია წვდომა პირად წევრებზე?

პირადი : Კლასი წევრები გამოცხადდა როგორც კერძო წვდომა შესაძლებელია მხოლოდ კლასის შიგნით არსებული ფუნქციებით. მათ დაუშვებელია უშუალოდ წვდომა ნებისმიერი ობიექტის ან ფუნქციის კლასის გარეთ. Მხოლოდ წევრი ფუნქციები ან მეგობრების ფუნქციები დაშვებულია წვდომა The კერძო მონაცემები წევრები კლასის.

შეგვიძლია თუ არა წვდომა კერძო მეთოდებზე რეფლექსიის გამოყენებით?

შეგიძლიათ წვდომა The პირადი მეთოდები კლასის გამოყენებით ჯავა ანარეკლი პაკეტი. ნაბიჯი 1 - ინსტანციირება მეთოდი ჯავას კლასი. ასახავს პაკეტის გავლის გზით მეთოდი -ის სახელი მეთოდი რომელიც გამოცხადებულია კერძო . ნაბიჯი 2 - დააყენეთ მეთოდი ხელმისაწვდომია setAccessible()-ისთვის ჭეშმარიტი მნიშვნელობის გადაცემით მეთოდი.

გირჩევთ: