Javassist
Utvecklare | Shigeru Chiba (programmerare) |
---|---|
Stabil frisättning | 3.25.0-GA / 16 april 2019
|
Förvar | |
Skrivet i | Java |
Operativ system | Cross-plattform |
Typ | Bytecode Engineering Library |
Licens | dubbla licenser för MPL och LGPL . |
Hemsida |
Javassist ( Java programmering assistant ) är ett Java- bibliotek som tillhandahåller ett sätt att manipulera Java-bytekoden för en applikation. I denna mening tillhandahåller Javassist stöd för strukturell reflektion , dvs möjligheten att ändra implementeringen av en klass vid körning .
Bytekodmanipulation utförs vid laddningstid genom en tillhandahållen klassladdare .
Javassist gör det möjligt för Java-program att definiera en ny klass vid körning och att modifiera en klassfil när JVM laddar den. Till skillnad från andra liknande bytekodredigerare tillhandahåller Javassist två nivåer av API: källnivå och bytekodnivå. Genom att använda API:et på källnivå kan programmerare redigera en klassfil utan kunskap om specifikationerna för Java-bytekoden; hela API:et är designat med endast Java-språkets ordförråd. Programmerare kan till och med ange insatt bytekod i form av Java-källtext; Javassist kompilerar det i farten. Å andra sidan tillåter bytecode-nivå API användarna att direkt redigera en klassfil som andra redaktörer.
Används
Javassist kan användas för följande:
- För att specificera bytekoden med hjälp av källkod – kan kompilera ett fragment av källtext online (t.ex. bara ett enda påstående)
- För aspektorienterad programmering (AOP) – kan introducera nya metoder i en klass och infoga före/efter/runt råd på både den som ringer och den som ringer
- För reflektion vid körning – kan använda ett metaobjekt som styr metodanrop på objekt på basnivå
- För fjärrmetodanrop – kan anropa en metod på ett fjärrobjekt som körs på en webbserver, ett alternativ till Java RMI som inte behöver en kompilator som rmic
Se även
externa länkar