Registrera dig för nyhetsbrev eller till min RSS-feeds för att erhålla uppdateringar automatiskt blogg!

Starta en metod skyddas från utsidan eller berövas en klass java: Kontrollera att det är omöjligt?



Det korrekta svaret är "beror på närvaron eller frånvaron av en säkerhet manager."

Faktum är att genom eftertanke faktiskt möjligt att gå i kraft de begränsningar av Java språket utan alltför stora svårigheter, ammenochè just detta inte är en trygghet chef, den enda aktör kan verkligen att förvalta och på sikt stoppa dessa typer av krafter.

Men nu kommer vi till exempel som är värt mer än många disquisizioni. Eftersom följande klass:

  net.nothing2hide.test paket; offentliga klass ClassWithMethodsToHack (private void sayHello (String namn) (System.out.println ( "Hej"   namn   "! du ringer ett privat metod ");)) 

vi vill visa hur lätt invocabile utanför den privata metoden "sayHello", som jag redan har förväntat att göra kraftigt använda eftertanke:

  net.nothing2hide.test paket; offentliga klass PrivateMethodInvocationTest (/ ** * Detta prov visar hur klass * åberopa en skyddad metod på en annan klass * * @ param args * / public static void main (String [] args) (String myName = "David"; Metod m, försök (/ / Let'access den privata metoden / / till eftertanke.  Du kan göra samma sak / / med en skyddad metod m = ClassWithMethodsToHack.class.getDeclaredMethod ( "sayHello", ny klass [] () String.class); if (m! = Null) (/ / Let's kraft Java språket tillgång / / Kontroller av återspeglas metod.  Notes / / att om en säkerhet manager definieras / / här lösningen kan inte tillåtas / / och ett SecurityException kan höjas m.setAccessible (sant), / / Och låt oss åberopa den skyddade metod m.invoke (ny ClassWithMethodsToHack () , New Object [] (myName ));)) fångsten (Exception e) (e.printStackTrace ();))) 
Prenumerera mina RSS-feeds Tyckte du om artikeln? Prenumerera nu RSS feeds!



Fortfarande ingen kommentar "

RSS-flöde för kommentarer i det här inlägget. TrackBack URI

Lämna en kommentar

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <Q cite=""> <strike> <strong>


Valid XHTML och CSS. ^ Top


Nära
Skicka e-post