in foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/utils/LambdaMetafactoryUtils.java [198:226]
public static Setter<Object, Object> createObjectSetter(Method setMethod) {
Object setter = createSetter(setMethod);
if (setter instanceof BoolSetter) {
return (Instance, value) -> ((BoolSetter) setter).set(Instance, (boolean) value);
}
if (setter instanceof ByteSetter) {
return (Instance, value) -> ((ByteSetter) setter).set(Instance, (byte) value);
}
if (setter instanceof CharSetter) {
return (Instance, value) -> ((CharSetter) setter).set(Instance, (char) value);
}
if (setter instanceof DoubleSetter) {
return (Instance, value) -> ((DoubleSetter) setter).set(Instance, (double) value);
}
if (setter instanceof FloatSetter) {
return (Instance, value) -> ((FloatSetter) setter).set(Instance, (float) value);
}
if (setter instanceof IntSetter) {
return (Instance, value) -> ((IntSetter) setter).set(Instance, (int) value);
}
if (setter instanceof LongSetter) {
return (Instance, value) -> ((LongSetter) setter).set(Instance, (long) value);
}
if (setter instanceof ShortSetter) {
return (Instance, value) -> ((ShortSetter) setter).set(Instance, (short) value);
}
return (Setter<Object, Object>) setter;
}