Javassist

Javassist
Utvecklare Shigeru Chiba (programmerare)
Stabil frisättning
3.25.0-GA / 16 april 2019 ( 2019-04-16 )
Förvar
Skrivet i Java
Operativ system Cross-plattform
Typ Bytecode Engineering Library
Licens dubbla licenser för MPL och LGPL .
Hemsida www .javassist .org

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

Officiell hemsida Edit this at Wikidata