I am looking for a java equivalent to the C# extension methods feature. Now I have been reading about Java 8\'s default methods, but as far as I can see, I can only add thes
Java doesn't have extension methods. Default methods are not extension methods. Let's look at each feature.
Problems solved:
Java's default methods are a feature to add a default implementation to an interface. So objects that extend an interface don't have to implement the method, they could just use the default method.
interface IA { default public int AddOne(int i) { return i + 1; } }
Any object that implements IA doesn't have to implement AddOne because there is a default method that would be used.
public class MyClass implements IA { /* No AddOne implementation needed */ }
C# lacks this feature and would be greatly improved by adding this feature. (Update: Feature coming in C# 8)
Problems solved:
Example: The type string is a sealed class in C#. You cannot inherit from string as it is sealed. But you can add methods you can call from a string.
var a = "mystring";
a.MyExtensionMethed()
Java lacks this feature and would be greatly improved by adding this feature.
There is nothing even similar about Java's default methods and C#'s extension method features. They are completely different and solve completely different problems.