0
Я пытаюсь вызвать частный метод из gosu scratchpad с помощью метода invoke(). Но я не могу получить доступ к этому приватному методу. Может ли один скажите мне лучший способ вызвать частные методы в Gosu Language.Here это кодКак вызвать частный метод в Gosu
try{
var clazz = java.lang.Class.forName(ClaimSearchCriteriaImpl)
var method = clazz.getDeclaredMethod("generateSimpleActiveClaimViewQuery", null)
method.setAccessible(true)
var ss = method.invoke(clazz, null)as ClaimSearchCriteriaImpl
print("Result.."+ss)
} catch(exception){
print("***********"+exception)
}
Когда я пытаюсь выполнить этот код, я получаю следующее исключение
java.lang.IllegalAccessException: Class program_.__Program__505 can not access a member of class com.guidewire.cc.domain.claim.impl.ClaimSearchCriteriaImpl with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:105)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253)
at java.lang.reflect.Method.invoke(Method.java:599)
at program_.__Program__505.evaluate(Unknown Source)
at gw.internal.gosu.parser.GosuProgram.runProgram(GosuProgram.java:421)
at gw.internal.gosu.parser.GosuProgram.evaluate(GosuProgram.java:253)
at gw.internal.gosu.parser.GosuProgram_Proxy.evaluate(gw.internal.gosu.parser.GosuProgram_Proxy:2)
at gw.internal.gosu.parser.ExecutionEnvironment$1.evaluate(ExecutionEnvironment.java:543)
at gw.internal.gosu.parser.ExecutionEnvironment$1.runScript(ExecutionEnvironment.java:523)
at gw.internal.gosu.parser.ExecutionEnvironment$1.run(ExecutionEnvironment.java:489)
at java.lang.Thread.run(Thread.java:724)
Не все ли ключевое слово 'private' запрещает другим классам или объектам использовать методы с этим модификатором? Мне кажется, что приложение работает так, как было разработано. – Waterbagel
Вы поняли это? – dawogfather