in dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/MockInvoker.java [68:97]
public static Object parseMockValue(String mock, Type[] returnTypes) throws Exception {
Object value;
if ("empty".equals(mock)) {
value = ReflectUtils.getEmptyObject(
returnTypes != null && returnTypes.length > 0 ? (Class<?>) returnTypes[0] : null);
} else if ("null".equals(mock)) {
value = null;
} else if ("true".equals(mock)) {
value = true;
} else if ("false".equals(mock)) {
value = false;
} else if (mock.length() >= 2
&& (mock.startsWith("\"") && mock.endsWith("\"") || mock.startsWith("\'") && mock.endsWith("\'"))) {
value = mock.subSequence(1, mock.length() - 1);
} else if (returnTypes != null && returnTypes.length > 0 && returnTypes[0] == String.class) {
value = mock;
} else if (StringUtils.isNumeric(mock, false)) {
value = JsonUtils.toJavaObject(mock, Object.class);
} else if (mock.startsWith("{")) {
value = JsonUtils.toJavaObject(mock, Map.class);
} else if (mock.startsWith("[")) {
value = JsonUtils.toJavaList(mock, Object.class);
} else {
value = mock;
}
if (ArrayUtils.isNotEmpty(returnTypes)) {
value = PojoUtils.realize(value, (Class<?>) returnTypes[0], returnTypes.length > 1 ? returnTypes[1] : null);
}
return value;
}