когда я проверяю параметр метода, который находится в классе, используя java-отражение для java.math.BigDecimal
и java.lang.String
isPrimitive()
return false. да, они не являются примитивными, но i want to differnciate between user defined class and these java class
Java - BigDecimal и Reflection
Class[] parameterTypes = method2.getParameterTypes();
for (Class class1 : parameterTypes) { // check the parameter type and put them in to a ArrayList
methodParams = new MethodParams();
strClassNameToFix = class1.getName();
strClassname =strClassNameToFix.replaceAll("\\[L", "").replaceAll("\\;","");
methodParams.setDataType(strClassname);
if(class1.isArray()){
methodParams.setArray(true);
}
if(class1.isPrimitive()){
methodParams.setPrimitive(true);
}
tempParamsList.add(methodParams);
}
основан на коде выше я истинна ложной methodParams.setPrimitive(true);
я сделал это, потому что есть несколько случаев, когда я получаю определенный пользователем объект, в моем случае com.hexgen.ro.request.CreateOrderRO
так как это установить?
также используя отражение, я получаю имя класса, объявленные в нем методы и тип аргументов для метода.
Но я не могу получить имя аргумента, как если бы я объявили метод вроде следующего:
class test{
public String testMethod(int a, String b){
return "test";
}
}
в приведенном выше коде, я могу получить folloing
Class name : test
Method name : testMethod
Arguments Type : int and String
Но i also want to get int a and String b
тип аргумента, а также объявленное имя переменной
Как это сделать.
Пожалуйста, помогите мне сделать это.
С наилучшими пожеланиями
Я не верю, что код Java байт сохраняет ** имена ** для параметров метода. –
хорошо, чем он должен сказать, что это невозможно? –
См. Http://stackoverflow.com/questions/2237803/can-i-obtain-method-parameter-name-using-java-reflection –