Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在运行时判断字段是否被Spock模仿或监视的方法_Java_Gson_Spock - Fatal编程技术网

Java 在运行时判断字段是否被Spock模仿或监视的方法

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

有没有办法在运行时判断一个Java实例的字段是否被Spock模拟过?我想在调试时使用此信息有条件地排除要序列化的字段,并使用GSON创建字符串表示以打印到标准输出。

如果需要检查的字段未设置,即返回null或其他默认值(true、false、0),则无法区分

但是,您可以检查声明字段的类本身是否为
Mock
。检查类是否为mock、spy或其他对象的最简单(但可能也是最不可靠的)方法是调用
toString()
方法,检查类型“SomeType”是否以
mock开始。所有模拟对象都已覆盖
toString()
。另外,通过
getClass().getName()
获得的类名类似于:
org.SomeType$$enhancerbyglib$$815ccad0