首页
\
问答
\
@XmlElementRef - 请求和响应的JAXBElement包装器(@XmlElementRef - JAXBElement wrappers for request and response)
@XmlElementRef - 请求和响应的JAXBElement包装器(@XmlElementRef - JAXBElement wrappers for request and response)
我用于我的Web服务请求和响应XML相同的
@XmlElementRef
元素,例如:请求:
@XmlElementRef(name = "elementId", namespace = "blah") private JAXBElement<Long> elementId;
响应:
@XmlElementRef(name = "elementId", namespace = "blah") private JAXBElement<Long> elementId;
我想在响应的构造函数中实例化该元素。 我怎么能这样做,只需要
new
操作员?I use for my web service request and response XML the same
@XmlElementRef
elements, for example:request:
@XmlElementRef(name = "elementId", namespace = "blah") private JAXBElement<Long> elementId;
response:
@XmlElementRef(name = "elementId", namespace = "blah") private JAXBElement<Long> elementId;
I want to instantiate the element in the constructor of the response. How can I do that, just with
new
operator?
原文:https://stackoverflow.com/questions/18515652
更新时间:2023-06-24 15:06
最满意答案
私有方法在子类中不可见,因此无法覆盖。 所以它总是从父类调用一个方法。
Private methods are not visible in subclasses and therefore can't be overriden. So it always invokes a method from parent class.
相关问答
更多-
您可以通过反射调用私有方法。 修改发布的代码的最后一位: Method method = object.getClass().getDeclaredMethod(methodName); method.setAccessible(true); Object r = method.invoke(object); 有几个注意事项。 首先, getDeclaredMethod只会发现在当前Class声明的方法,而不是从超Class继承。 所以,如果有必要,遍历具体的类层次结构。 其次, SecurityMana ...
-
只需更改代码即可使用接受BindingFlags 的GetMethod的重载版本 : MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams }); 这是BindingFlags枚举文档 。 Simply change ...
-
我理解单元测试的方式,这正是我想要做的那种测试。 我一直把单元测试视为白盒测试 ; 如果我的代码中有一个分支点,那意味着我需要两个单元测试来解决它。 我认为我遇到的最糟糕的情况是一种方法,有32种排列。 单元测试的挑战在于,如果您不通过检查代码并找出所有不同的路径来探索所有边缘情况,那么最终会丢失一个或多个案例,并可能在您的应用程序中引入微妙的错误。 所以,不,我不认为你提出的是奇怪的。 该方法可以保持内部,你可以添加一个额外的测试用例 - 你可能只需要一个例外,对吧? 或者,您可以将功能重构为一个单独的对 ...
-
如何使用PowerMock调用私有方法并获取返回值?(How to use PowerMock invoke private method and get return value?)[2023-06-13]
你可以像这样使用Whitebox来做到这一点, privateMethod1ReturnClass s = Whitebox.invokeMethod(demo, "privateMethod1"); assertEquals(s, "yourExpectedResult"); You can do it using Whitebox like this, privateMethod1ReturnClass s = Whitebox.invokeMethod(demo, "privateMethod1") ... -
您需要将传递给null参数强制转换为invoke() 。 System.out.println(method[i].invoke(s, (Object)null)); 否则它认为你正在调用没有参数的底层方法,即。 一个null Object[] 。 通过强制转换,编译器(和运行时)知道你传递一个null对象作为可变参数Object[]唯一的元素。 编辑完成后:您是否删除了setAccessible(true) ? 你把你的if-else交织在一起。 使用 if(methodName.equalsIgno ...
-
您是将IL插入DynamicMethod还是插入动态程序集中的方法? 据我了解,没有办法从动态程序集中跳过可见性检查,但是在使用DynamicMethod时可以跳过它们(参见此处 )。 The solution (to my particular problem), was to used delegates instead of direct method calls. You can comfortably construct an open delegate and pass it to the IL ...
-
您的代码中存在两个问题 你使用的getMethod只返回public方法,私有的方法使用getDeclaredMethod 你在"method"文字而不是A类的实例上调用你的方法(String没有这个方法,所以你不能在它的实例上调用它 - 像"method".method(yourList)不正确) 。 你的代码应该是这样的 Class clazz = A.class; Method met = clazz.getDeclaredMethod("method", List.class); // ...
-
在你的例子中, Horse 是 Animal 。 所以是的, Horse有一种叫做eat方法,因为每种Animal都有一种这样的方法,而且每Horse都是Animal 。 eat的方法由Animal类定义,并且是该类中的私有方法。 这意味着它只能从Animal类中定义的其他方法中访问,而没有其他方法。 没有超级/子类,没有包装,没有容器,没有任何东西。 甚至不是Horse ,即使它是 Animal ,也不是Animal本身。 因此,您的示例以预期的方式工作。 作为最后一点,特别回答“标题”中的问题时, 为什 ...
-
私有方法在子类中不可见,因此无法覆盖。 所以它总是从父类调用一个方法。 Private methods are not visible in subclasses and therefore can't be overriden. So it always invokes a method from parent class.
-
如何避免子类无意中重写超类私有方法(How to avoid subclass inadvertently overriding superclass private method)[2023-05-23]
AFAIK,你可以期待的最好的就是声明覆盖必须叫super。 您可以通过将超类中的方法定义为: - (void)interestingMethod NS_REQUIRES_SUPER; 这将编译时标记任何不调用super的覆盖。 AFAIK, the best you can hope for is declaring that overrides must call super. You can do that by defining the method in the superclass as: - ...