Если я правильно понимаю, вы используете этот код в суперклассе, чтобы проверить, имеет ли подкласс поле testVariable
.
Почему бы вам просто не добавить такой метод?
/**
* Returns true if the object declares a testVariable field, false otherwise. Subclasses should
* override this method
*/
protected boolean hasTestVariableField() {
return false;
}
Мне кажется, что ОО гораздо больше, не нарушает инкапсуляцию.
Тем не менее, я не совсем понял, зачем вам это нужно.