В Java нет ничего, что вызывает указатель на функцию, скорее это функциональный объект. В этом вы можете определить объект, методы которого выполняют операции над другими объектами. например,
class MyClass
{
public void myFunction(String s1, String s2)
{
return s1.length() - s2.length();
}
}
MyClass m = new MyClass();
m.myFunction("nnnnnn", "mmmmmmmmmmm");
Это не что иное, как функциональный объект. Если мы следуем коду правилу интерфейса, то мы можем определить интерфейс и также использовать обобщенные значения.
public interface MyInterface<T>
{
public void myFunction(T s1, T s2);
}
Теперь оригинальный класс может реализовывать этот интерфейс. Приведенный выше пример является простой модификацией примера интерфейса Comparator. Если вам не нужен конкретный класс, вы также можете использовать анонимный класс.
Arrays.sort(stringArray, new Comparator <String> ()
{
public int compare(String s1, String s2)
{
return s1.length() - s2.length();
}
};
);
Надеюсь, это поможет.