Существуют ли доступные инструменты с открытым исходным кодом, которые поддерживают поиск методов Java с помощью набора типов параметров и типа возвращаемого значения?
В качестве примера скажем, что я ищу метод для генерации хеш-кода для массива int. Я ищу метод, который принимает параметр int [] и возвращает int:
int[] -> int
получая
java.util.Arrays#hashCode(int[])
...
Или я могу захотеть найти метод, который берет String, и символ для замены, и символ, чтобы заменить его. Поэтому я ищу подходящий метод:
String, char, char -> String
получая
java.lang.String#replace(char, char)
...
В идеале мне нужен Java-эквивалент Haskell Hoogle, который поддерживает поиск функций по сигнатуре типа.
Я бы ожидал, что инструмент:
- игнорировать порядок параметров
- включают методы, которые принимают "более широкие" типы в качестве параметров (например, суперклассы)
- включают методы, которые возвращают "более узкие" типы в качестве возвращаемых значений (например, подклассы)
- обрабатывать значение "self" как параметр для методов экземпляра (например, "String → int" будет включать String # hashCode)
Я знаю, что многие IDE поддерживают поиск методов, которые принимают или возвращают данный тип, но еще не видели инструмент для сужения поиска по комбинации типов параметров и типа возвращаемого значения.