首页 > 编程知识 正文

什么是链式编程,编程while的用法

时间:2023-05-05 10:27:42 阅读:204383 作者:2205

链式编程: 

processStartRequest .startUserID(applicant.getUid()) .businessKey(String.valueOf(apply.getId())) .processDefinitionId(flowDefinition.getProcessId()) .variables(variables); public void doApply(FlowDefinition flowDefinition, Apply apply) { apply.setStatus(Apply.Status.APPLIED); User applicant = this.getApplicant(); TaskChain nextTaskChain = this.getTaskChain(apply.getId(), AssigneeRole.APPLICATION_OWNER); ProcessStartRequest processStartRequest = new ProcessStartRequest(); List<Variable> variables = this.taskVariables(apply, nextTaskChain); processStartRequest .startUserID(applicant.getUid()) .businessKey(String.valueOf(apply.getId())) .processDefinitionId(flowDefinition.getProcessId()) .variables(variables); ProcessStartResponse processStartResponse = this.engine.processStart(processStartRequest); if (null == processStartResponse || StringUtils.isBlank(processStartResponse.getId())) { throw new PortalRuntimeException("sync to bpm error"); } apply.setInstanceId(processStartResponse.getId()); this.applyService.updateById(apply);} package com.bmw.api.platform.portal.bpm.entity.req;import com.bmw.api.platform.portal.bpm.entity.Variable;import com.bmw.api.platform.portal.bpm.entity.resp.ProcessDefinitionResponse;import lombok.Data;import lombok.experimental.Accessors;import java.io.Serializable;import java.util.List;/** * ProcessStartRequest.java * 流程开启请求参数 * @date 2021-07-05 11:31 */@Data@Accessors(fluent = true, chain = true)public class ProcessStartRequest implements Serializable { private static final long serialVersionUID = 6985140847318580109L; /** * 流程定义ID {@link ProcessDefinitionResponse.Content#getId()} */ private String processDefinitionId; /** * 流程业务ID(唯一不重复) */ private String businessKey; /** * 流程实例变量,影响流程条件业务数据,例如:节点A进入条件为money>100,节点B进入进入条件为money<=100. * 发起人信息可以放到里面进行查询. */ private List<Variable> variables; /** * 流程发起人 */ private String startUserID;//{//"processDefinitionId":"myProcess:10:fe0cbeaf-852a-11ea-82a2-0a580a4cf044",//"businessKey":"20200423003",//"variables":[// {"name":"money","value":"99"}, //业务数据// {"name":"dirPass","value":"1"}, //业务数据// {"name":"_Applicant","value":"Lu yupeng(uf059350)"} ,// {"name":"_BusinessStatus ","value":"Proceeding"}//],//"startUserID":"uf059350"//} public String getProcessDefinitionId() { return processDefinitionId; } public void setProcessDefinitionId(String processDefinitionId) { this.processDefinitionId = processDefinitionId; } public String getBusinessKey() { return businessKey; } public void setBusinessKey(String businessKey) { this.businessKey = businessKey; } public List<Variable> getVariables() { return variables; } public void setVariables(List<Variable> variables) { this.variables = variables; } public String getStartUserID() { return startUserID; } public void setStartUserID(String startUserID) { this.startUserID = startUserID; }}

@Accessors(chain=true)

链式访问,该注解设置chain=true,生成setter方法返回this(也就是返回的是对象),代替了默认

的返回void。

package com.pollyduan;import lombok.Data;import lombok.experimental.Accessors;@Data@Accessors(chain=true)public class User { private Integer id; private String name; private Integer age; public static void main(String[] args) { //开起chain=true后可以使用链式的set User user=new User().setAge(31).setName("pollyduan");//返回对象 System.out.println(user); }}

@Accessors(fluent = true)

与chain=true类似,区别在于getter和setter不带set和get前缀。

package com.pollyduan;import lombok.Data;import lombok.experimental.Accessors;@Data@Accessors(fluent=true)public class User { private Integer id; private String name; private Integer age; public static void main(String[] args) { //fluent=true开启后默认chain=true,故这里也可以使用链式set User user=new User().age(31).name("pollyduan");//不需要写set System.out.println(user); }}

@Accessors(prefix = “f”)

set方法忽略指定的前缀。不推荐大神们这样去命名。

package com.pollyduan;import lombok.Data;import lombok.experimental.Accessors;@Data@Accessors(prefix = "f")public class User { private String fName = "Hello, World!"; public static void main(String[] args) { User user=new User(); user.setName("pollyduan");//注意方法名 System.out.println(user); }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。