obj.getClass()
вернет класс времени выполнения объекта, то есть он проверит во время выполнения, на что указывает ссылка Object
.
Это упомянуто в документе Java метода getClass()
:
Возвращает класс времени выполнения этого объекта
blockquote>как простой тест, который вы можете убедиться сами, что
getClass
проверяет тип времени выполнения объекта:public static void main(String[] args) { String s = "hello"; test(s); } public static void test(Object o){ System.out.println(o.getClass()); }
Здесь вывод будет ссылаться на класс
String
, хотя ссылочный тип во время компиляции isObject
:class java.lang.String
Таким образом, в вашем методе
false
не будет возвращено, если экземплярPerson
передан методуequals
. Но если это не экземплярPerson
, тогдаgetClass() != obj.getClass()
будетtrue
иequals
выйдет сfalse
в качестве возвращаемого значения.
Google Collections Library обеспечивает a Function
интерфейс, который подобен (хотя, вероятно, не как подробно).
Предоставляет интерфейсы для функций с 0, 1 и 2 аргументами. Использует дженерики Java. Хороший набор алгоритмов для работы с функциями.
Предоставляет классы для 0, 1, 2 и произвольного числа функций аргументов. Объекты домена делят их на подклассы. Использует дженерики Java. Обширный набор алгоритмов. Включает JFXG (Java Functor eXpression Grammar) - анализируемый язык, предназначенный для упрощения создания произвольно сложных функторов. Предоставляет несколько алгоритмов для работы с функциями.
Предоставляет интерфейсы для функций аргументов 0, 1 и 2, а также 0, Процедуры с 1 и 2 аргументами (которые не возвращают значения). Использует дженерики Java. Хороший набор алгоритмов.
Предоставляет интерфейсы функций и предикатов для функций с одним аргументом. Использует дженерики Java. Предоставляет только метод compose для объединения функций. Довольно простой.
Предоставляет интерфейсы и классы для 0, 1, 2 и произвольного числа функций аргументов. Использует дженерики Java. Существующие методы можно превратить в функции с помощью предоставленных классов отражения функций.
Предоставляет интерфейсы и классы для 0, 1, 2 и произвольного числа функций аргументов. Использует дженерики Java. Существующие методы можно превратить в функции с помощью предоставленных классов отражения функций.
Предоставляет интерфейсы и классы для 0, 1, 2 и произвольного числа функций аргументов. Использует дженерики Java. Существующие методы можно превратить в функции с помощью предоставленных классов отражения функций.
swensen.functional, http://www.codeproject.com/KB/java/ FunctionalJava.aspx , Yours Truly.
Предоставляет универсальные интерфейсы с одним методом, инкапсулирующие функции аргументов от 0 до 5 (FuncX) и процедуры (ActionX). Также включает функтор Predicate (абстрактный класс, реализующий Func2
Надеюсь, я никого не обижу, говоря, что объект функции не является функтором. Найдите функтор в Википедии. И, пожалуйста, перестаньте злоупотреблять этим термином.