As I know java has method overloading feature, so I am interesting why method annotated as B
produce java.lang.StackOverflowError
. I think this might be connected to some recursive call, but I did not have any compiler warnings. Can someone explain why I got exception.
public static void main(String[] args) {
Set<Integer> set = getSet(1);
}
//A
private static Set<Integer> getSet(List<Integer> numbers) {
return new HashSet<>(numbers);
}
//B throwing exception
private static Set<Integer> getSet(Integer number) {
return getSet(number);
}