Java JDK11. Явное приведение типов с помощью функции
Изучая рефлексию в java столкнулся с необходимостью явного приведения типов. Но дело в том, что по моей задаче требуется приводить или к long, или к int, или к byte, или к short, и таким образом на первых парах код превращается в что-то такое:
byte flag = GetIntFlag(field);
if ((flag == 0 && (long)field.get(object) <= 0) ||
(flag == 1 && (int)field.get(object) <= 0) ||
(flag == 2 && (short)field.get(object) <= 0) ||
(flag == 3 && (byte)field.get(object) <= 0)) //Do something
. . .
private byte getIntFlag(Field field)
{
if (field.getType().equals(long.class)) return 0;
if (field.getType().equals(int.class)) return 1;
if (field.getType().equals(short.class)) return 2;
if (field.getType().equals(byte.class)) return 3;
return 4;
}
Есть ли возможность передавать тип для явного приведения в помощью функции, в которой уже были бы все нужные проверки, чтобы код имел вид:
if ((SomeFunction(field))field.get(object) <= 0) //Do something
Если да, какого типа значение должна возвращать функция? Заранее спасибо.