精简 newSetter的逻辑