Я пытаюсь вызвать метод в классе с помощью отражения. Метод находится внутри класса EJB. Я продолжаю получать метод не найден. Я написал следующий код для устранения проблемы.
Один из параметров (интерфейс, определенный внутри фляги), кажется, тот же самый, но есть хеш-код, который вызывает проблему. Я проверил версии jar как в коде вызова, так и в коде Кейли. В коде вызова хэш-код одинаков для всех вызовов. Но в коде вызываемого абонента хеш-код для интерфейса продолжает изменять любые указатели ??
private static Method findMethod( Class<?> encapsulatingClass, Class<?>[] paramArray, String methodName) {
Method[] methods = encapsulatingClass.getDeclaredMethods();
Method method = null;
for (int i = 0; i < methods.length; i++) {
method = methods[i];
Class<?>[] paramTypes = method.getParameterTypes();
if (method.getName().equals(methodName) ) {
if(paramTypes.length == paramArray.length){
for(int j = 0;j<paramTypes.length;j++){
if(!paramTypes[j].equals(paramArray[j])){
Debug.info("Method argument " + paramTypes[j].getName() + " hashcode = "
+ paramTypes[j].hashCode() + "Parameter " + paramArray[j].getName() + " Hashcode = " +
paramArray[j].hashCode());
if(paramTypes[j].getName().equals(paramArray[j].getName())){
Debug.info("Atleast Parameter name seems to be same");
}else{
Debug.info("Strange cant find a diff can u??");
Debug.info("String 1 = " + paramTypes[j].getName() + " String 2 = " + paramArray[j].getName());
}
}
}
}
break;
}
}
return method;
}