Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

205
Views
Is it possible to inject a method in built-in class in Java?

In JavaScript it is easy to modify (or even replace entirely) built-in classes. One could simply write a name of a method and inject it into built-in class in JavaScript simply by typing = and defining a function. Then this method can be used on every instance of that class.

For example, I injected a method multiply into String JavaScript built-in class which multiplies string which string object contains given number of times.

Can I do something similar in Java?

I know that I can extend some built-in class and in my custom class define this method. But, is it possible to inject a method in a built-in Java class like in JavaScript so that everywhere where that class is used in the program this custom method is available?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

This is possible to do during runtime. But the simple answer is that you do not want to do that. Bytecode modification is extremely fragile and complex. Let alone that your code also won't compile if you directly call the new method you have injected, meaning you have to resort to expensive methods such as Reflection.

Your best alternative would be to make a utility class for Strings that has this multiply method. Something like this:

public class StringUtil {
    public static String multiply(String s1, int i) { ... }
}

For non-final classes (so, not the String class), you can also choose to extend the class and add your methods to the newly created class:

public class MyType extends Type {
    public static SomeType someMethod() { ... }
}

This will require you to replace all types of type Type with MyType

I do not fully understand your example, but it sounds like String#repeat(int) might do the same as what you are trying to achieve.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!