Java 在运行时判断字段是否被Spock模仿或监视的方法
有没有办法在运行时判断一个Java实例的字段是否被Spock模拟过?我想在调试时使用此信息有条件地排除要序列化的字段,并使用GSON创建字符串表示以打印到标准输出。如果需要检查的字段未设置,即返回null或其他默认值(true、false、0),则无法区分 但是,您可以检查声明字段的类本身是否为Java 在运行时判断字段是否被Spock模仿或监视的方法,java,gson,spock,Java,Gson,Spock,有没有办法在运行时判断一个Java实例的字段是否被Spock模拟过?我想在调试时使用此信息有条件地排除要序列化的字段,并使用GSON创建字符串表示以打印到标准输出。如果需要检查的字段未设置,即返回null或其他默认值(true、false、0),则无法区分 但是,您可以检查声明字段的类本身是否为Mock。检查类是否为mock、spy或其他对象的最简单(但可能也是最不可靠的)方法是调用toString()方法,检查类型“SomeType”是否以mock开始。所有模拟对象都已覆盖toString()
Mock
。检查类是否为mock、spy或其他对象的最简单(但可能也是最不可靠的)方法是调用toString()
方法,检查类型“SomeType”是否以mock开始。所有模拟对象都已覆盖toString()
。另外,通过getClass().getName()
获得的类名类似于:org.SomeType$$enhancerbyglib$$815ccad0