Превращение моих комментариев в ответ.
Два подхода, которые я могу быстро придумать:
Используйте Object.class
прямо здесь. signal(object, Object.class);
прекрасно компилируется без предупреждений о моей java версии.
Измените сигнатуру вашего метода на что-то вроде:
<N, M extends N> void signal(N n, Class<? super M> n_super)
, что должно позволить вам называть ее так, как вы уже есть (как в signal(object, object.getClass());
).