У меня следующая ситуация (я знаю, что это не звучит реально, но я упростил ее для лучшего понимания):
- A
class A
, с объявленным public static int f;
- Другие классы
B, C, D, ...
, которые расширяют A
- Метод
foo
(где-то еще, не имеет значения) со следующей подписью: int foo(Class< A> classz);
Теперь я хочу, чтобы реализация этого метода возвращала значение, если статическое поле f
, из класса, представленного classz
; подклассы A
могут иметь разные значения. Я не хочу использовать отражение (и ни новые функции jdk7. *). Пока у меня есть это решение, которое работает, но не хорошо, так как оно создает объект (который не должен быть необходим) и генерирует предупреждение путем доступа к статическому полю из экземпляра:
int foo(Class< A> classz) throws [don't matter] {
return classz.newInstance().f;
}
Есть предложения?
Заранее спасибо?
PS: не знаю, как набрать Class< ?>
без пробела ...