好吧,我试图理解和阅读可能导致它的原因,但我无法得到它:
我在我的代码中有这个地方:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
Run Code Online (Sandbox Code Playgroud)
事实是,当它试图调用某个方法时,它会抛出
InvocationTargetException而不是其他预期的异常(具体而言ArrayIndexOutOfBoundsException).因为我实际上知道调用了什么方法,所以我直接使用了这个方法代码,并为假设要抛出的行添加了一个try-catch块 ArrayIndexOutOfBoundsException,它确实ArrayIndexOutOfBoundsException按预期抛出.然而,当它上升时它以某种方式改变,InvocationTargetException并且在上面的代码中,catch(Exception e)
e InvocationTargetException并不ArrayIndexOutOfBoundsException
像预期的那样.
什么可能导致这样的行为或我如何检查这样的事情?
使用Java类上的反射来访问所有字段,方法等:
这些元素是否有标准化顺序(在某些标准中指定)?
当然,我可以凭经验检查,但我需要知道它是否总是一样的.
编辑:
我等待的问题:我需要的订单;)
长话短说:我有JAXB注释类,并且不希望在视觉上代表这些类.虽然XML属性的顺序既不与XML标准相关,也不与JAXB相关,但我希望对可视表示具有特定顺序的XML属性.
例如:开始结束.这伤害了一个人的直觉.