小编For*_*ght的帖子

用于通用树的自定义Jackson序列化程序

假设我有一个用Java实现的参数化树,如下所示:

public class Tree<E> {
   private static class Node {
      E element;
      List<Node> children.
   }

   Node root;

   //... You get the idea.
}
Run Code Online (Sandbox Code Playgroud)

这里的想法是上面的实现仅涉及树的拓扑,但是不知道将通过实例化存储在树中的元素的任何信息.

现在,说我希望我的树元素是地理位置.它们在树木中组织的原因是因为大陆包含国家,国家包含州或省,等等.为简单起见,地理位置具有名称和类型:

public class GeoElement { String name; String type; }
Run Code Online (Sandbox Code Playgroud)

最后,地理层次结构如下所示:

public class Geography extends Tree<GeoElement> {}
Run Code Online (Sandbox Code Playgroud)

现在到杰克逊序列化.假设Jackson序列化程序可以看到字段,则此实现的直接序列化将如下所示:

{
   "root": {
      "element": {
         "name":"Latin America",
         "type":"Continent"
      }
      "children": [
          {
             "element": {
                "name":"Brazil",
                "type":"Country"
             },
             "children": [
                 // ... A list of states in Brazil
             ]
          },
          {
             "element": {
                "name":"Argentina",
                "type":"Country"
             },
             "children": [
                 // …
Run Code Online (Sandbox Code Playgroud)

java generics json jackson

16
推荐指数
2
解决办法
1390
查看次数

如何在 Mockito 中覆盖 unstubbed void 方法的默认行为?

我正在模拟一个相当复杂的对象层次结构,在我处理它的过程中,可能涉及到大量的方法。如果我错过了一个非空的方法并保持不变,默认情况下 Mockito 会使其返回 null,这会快速触发 NPE,我很容易找到它。然而,如果我错过了一个 void 方法,默认行为是什么都不做,这经常导致下游的失败并且更难调试。我想更改此默认值,例如抛出自定义异常,但似乎没有找到方法。提前致谢!

java junit mockito

2
推荐指数
1
解决办法
2220
查看次数

Java谜语:需要一个稳定的随机数,它在JVM中持久化,但在另一个JVM中是不同的

我需要找到一种方法从JVM获取一个(有点)随机字符串或数字,我不必存储.但是我会在JVM的整个生命周期中多次需要它,因此对此方法的后续调用必须返回相同的值.此外,在重新启动JVM之后,相同的代码必须产生不同但仍然稳定的值.随机性的质量并不重要,只要它足够难以猜测.

java random jvm

0
推荐指数
1
解决办法
365
查看次数

标签 统计

java ×3

generics ×1

jackson ×1

json ×1

junit ×1

jvm ×1

mockito ×1

random ×1