Java является объектно-ориентированным языком, поэтому ответ «определенно!» Вы можете сказать имя переменной, переданной в качестве параметра. Для этого попробуйте это ...
class Value<T> extends Object
{
T value;
String name;
public Value(String name, T value)
{
this.name = name;
this.value = value;
}
}
Теперь в ваших методах вы будете принимать все параметры как экземпляры Value, как в следующем методе, который будет принимать только значения, созданные с классами, имеющими Number в качестве базового класса (такими как Long, Float, Double и т. Д.). ..
public String SomeMethodWantingToKnowParameterNames(Value<? extends Number> parm1)
{
if (parm1 != null)
{
// Do your work with the parameter - it's name can be accessed via parm1.name
// This is only an example
// You would probably want to write an accessor for name
return parm1.name;
}
// Return null for null
return null;
}
И это все, что нужно! Я использую универсальный класс, чтобы Value можно было использовать для передачи любого типа - Floats, Longs, Double, BigInteger, String - например ...
Value<Float> vFloat = new Value<Float>("MyFloat", 0.0);
Кроме того, приведенный выше метод является просто примером - на практике любой метод, принимающий значение, может получить доступ к его имени.
Удачи, и пусть весь ваш код скомпилируется без ошибок!
Родня