Tilføjelse af nye funktioner til Java standard classes
Er det egentlig muligt at lave en funktion, som man så kalder med en af Java's standard classes, som f.eks. Math.pow, Math.floor osv, så man kaldte funktionen med Math.funktionsnavn?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hmm...næh, mere tilføje til en klasse, så man ikke skal kalde f.eks. Add (hvis ens funktion hedder det), men kan kalde Math.add i stedet for, altså på en eller anden måde lave ens class sådan at den automatisk bliver implementeret til Math, hvis man har installeret class filen.
Alle metoder i Math klassen kan du kalde ved at skrive Math.metodenavnet Hvis du vil tilføje yderligere funktioner til klassen og bibeholde de metoder den i forvejen har må du arve fra den.
men jeg kan godt høre hvad du vil have.. at du kan lave en klasse med nogle metoder som bliver tilføjet Math klassen.
Ok, tror jeg forstår det: hvis en funktion er static bliver den ikke (kender ikke lige den tekniske betegnelse) "over-ruled" hvis man extender... godt at vide.. takker
Jeg mener at klasser i java.lang skal loades med boot classloaderen d.v.s. at man skal bruge -Xbootclasspath
Endvidere søger Java jo først i rt.jar efter klasser d.v.s. at man skal faktisk have erstattet rt.jar med -Xbootclasspath ikke appended
Og så er der lige licensen. Fra dokumentationen:
-Xbootclasspath:bootclasspath Specify a semicolon-separated list of directories, JAR archives, and ZIP archives to search for boot class files. These are used in place of the boot class files included in the Java 2 SDK. Note: Applications that use this option for the purpose of overriding a class in rt.jar should not be deployed as doing so would contravene the Java 2 Runtime Environment binary code license.
Det, jeg tror, du kunne gøre er at finde sorce koden og copy paste den i dit projekt og tilføje dine metoder der... så istedet for at kalde import java.lang.math; kalder du import dinpakke.math;
Grunden til, at det ikke er så smart at tilføje metoder og klasser til JAVA CLASS LIBRARY er bla., at du så derved altid skal distribuere din JRE med dit program. Desudens skal du huske hver eneste gang du benytter dig af de metoder du selv har tilføjet at skrive som kommentar at det er metoder du selv har tilføjet til class library - ellers kan en anden der kigger din kode igennem eller skal arbejde vidre med den bruge masser af tid på, at finde ud af hvor/hvordan de metoder er kommet til (med mindre du selvfølgelig også udgiver din egen JAVADOC til din JRE) ;0) Som det fremgår er ulemperne store og fordelen meget lille - selv hvis det var lovligt at gøre det...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.