springbot项目中使用继承
package com.example.demo.controller; import com.sun.org.apache.bcel.internal.generic.NEW;
import org.springframework.web.bind.annotation.*; /**
* @program: demo->DemoController
* @description: demo
* @author: cxy
* @create: 2019-11-13 16:47
**/
@RestController
public class DemoController { @RequestMapping(value = "/", method = RequestMethod.POST)
public RspResult detail(@RequestBody TraceReqCancelOrder traceReqCancelOrder) {
TraceRspResult rsp = new TraceRspResult();
String traceId = traceReqCancelOrder.getTraceId();
System.out.println(traceId); System.out.println(traceReqCancelOrder.toString());
check(traceReqCancelOrder); rsp.setTraceId("");
rsp.setBody();
rsp.setMsg("success");
rsp.setResult();
return rsp;
} public static void check(ReqCancelOrder order){
String traceId = order.getTeacherId();
System.out.println(traceId);
} @RequestMapping(value = "/2", method = RequestMethod.POST)
public RspResult detail1(@PathVariable Integer id) {
TraceRspResult rsp = new TraceRspResult();
System.out.println(id); rsp.setTraceId("");
rsp.setBody();
rsp.setMsg("success");
rsp.setResult();
return rsp;
} @RequestMapping(value = "/3", method = RequestMethod.POST)
public RspResult detail2(@PathVariable Integer id) {
RspResult rsp = new TraceRspResult();
System.out.println(id); rsp.setTraceId("");
rsp.setBody();
rsp.setMsg("success");
rsp.setResult();
return rsp;
} }
package com.example.demo.controller;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ReqCancelOrder {
@JsonProperty("SerialNo")
private String serialNo;
@JsonProperty("TeacherId")
private String teacherId;
@JsonProperty("TeamId")
private String teamId;
@JsonProperty("LocalOrderNo")
private long localOrderNo;
public String getSerialNo() {
return serialNo;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
public String getTeacherId() {
return teacherId;
}
public void setTeacherId(String teacherId) {
this.teacherId = teacherId;
}
public String getTeamId() {
return teamId;
}
public void setTeamId(String teamId) {
this.teamId = teamId;
}
public long getLocalOrderNo() {
return localOrderNo;
}
public void setLocalOrderNo(long localOrderNo) {
this.localOrderNo = localOrderNo;
}
@Override
public String toString() {
return "ReqCancelOrder{" +
"serialNo='" + serialNo + '\'' +
", teacherId='" + teacherId + '\'' +
", teamId='" + teamId + '\'' +
", localOrderNo=" + localOrderNo +
'}';
}
}
package com.example.demo.controller;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class ReqOrderStatusQuery {
// 序列号
@JsonProperty("SerialNo")
private String serialNo;
// 订单请求列表
@JsonProperty("Orders")
private List<Order> orders ;
public List<Order> getOrders() {
return orders;
}
public void setOrders(List<Order> orders) {
this.orders = orders;
}
public static class Order {
// 老师ID
@JsonProperty("TeacherId")
private String teacherId;
// 委托单号
@JsonProperty("LocalOrderNo")
private long localOrderNo;
public String getTeacherId() {
return teacherId;
}
public void setTeacherId(String teacherId) {
this.teacherId = teacherId;
}
public long getLocalOrderNo() {
return localOrderNo;
}
public void setLocalOrderNo(long localOrderNo) {
this.localOrderNo = localOrderNo;
}
@Override
public String toString() {
return "Order{" +
"teacherId='" + teacherId + '\'' +
", localOrderNo=" + localOrderNo +
'}';
}
}
@Override
public String toString() {
return "ReqOrderStatusQuery{" +
"serialNo='" + serialNo + '\'' +
", orders=" + orders +
'}';
}
}
package com.example.demo.controller;
import com.fasterxml.jackson.annotation.JsonProperty;
public class RspResult {
public static final String SUCCESS_MSG = "success";
public static final String FAIL_MSG = "fail";
@JsonProperty("Result")
private int result;
@JsonProperty("Msg")
private String msg;
@JsonProperty("Body")
private Object body;
public static RspResult genSucess(Object object) {
RspResult rspResult = new RspResult();
rspResult.setResult();
rspResult.setMsg(SUCCESS_MSG);
rspResult.setBody(object);
return rspResult;
}
public static RspResult genFail(String msg) {
RspResult rspResult = new RspResult();
rspResult.setResult(-);
rspResult.setMsg(msg);
rspResult.setBody(null);
return rspResult;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getBody() {
return body;
}
public void setBody(Object body) {
this.body = body;
}
}
package com.example.demo.controller; import com.fasterxml.jackson.annotation.JsonProperty; /**
* @program: tdsimulate->TraceReqCancelOrder
* @description: 接入监控平台的取消委托参数
* @author: cxy
* @create: 2019-11-13 16:24
**/
public class TraceReqCancelOrder extends ReqCancelOrder{
//traceId 链路追踪id
@JsonProperty("TraceId")
private String traceId; public String getTraceId() {
return traceId;
} public void setTraceId(String traceId) {
this.traceId = traceId;
} @Override
public String toString() {
return "TraceReqCancelOrder{" +
"traceId='" + traceId + '\'' +
"} " + super.toString();
}
}
package com.example.demo.controller; import com.fasterxml.jackson.annotation.JsonProperty; /**
* @program: tdsimulate->TraceRspResult
* @description: 接入业务系统接入监控平台的返回Dto
* @author: cxy
* @create: 2019-11-13 10:53
**/
public class TraceRspResult extends RspResult {
//traceId ---首节点生成的traceid
@JsonProperty("TraceId")
private String traceId; public String getTraceId() {
return traceId;
} public void setTraceId(String traceId) {
this.traceId = traceId;
} }
可以看主题:今天是继承,所以那么就要采用继承:

这个地方很明显看出问题,就是创建对象时候用子父类去接受子类,是可以的,但是在后面如果去操作子类,是不可以的,编译器直接报错,,如果不操作子类属性是可以的,
那么得出结论:就是父类可以接收子类,但是接受的父类,不可以操作子类的属性
同理:

如果是父类接受,那么也可以进行,但是只要不操作,子类的属性,

springbot项目中使用继承的更多相关文章
- 在C#MVC三层项目中如何使用SprintNet
0.添加dll文件 1.首先在根目录下新建一个文件夹[Config],然后新建2两个xml文件. 1-1[controllers.xml]用来配置需要创建的对象 1-2[service.xml]用来配 ...
- Django项目中模板标签及模板的继承与引用【网站中快速布置广告】
Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...
- javascript中的继承与深度拷贝
前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...
- iOS 之项目中遇到的问题总结
昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...
- 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
- Web API项目中使用Area对业务进行分类管理
在之前开发的很多Web API项目中,为了方便以及快速开发,往往把整个Web API的控制器放在基目录的Controllers目录中,但随着业务越来越复杂,这样Controllers目录中的文件就增加 ...
- 关于Java中的继承和组合的一个错误使用的例子
[TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...
- AutoMapper之ABP项目中的使用介绍
最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...
随机推荐
- Java拦截过滤器模式
当我们想要对应用程序的请求或响应进行一些预处理/后处理时,使用截取过滤器设计模式. 在将请求传递到实际目标应用程序之前,在请求上定义和应用过滤器. 过滤器可以进行请求的认证/授权/日志记录或跟踪,然后 ...
- Linux的各个发行版本(一)
三大流派 1.Slackware SUSE Linux Enterprise Server (SLES) OpenSuse桌面 2.debian 迄今为止最遵循GNU规范的Linux系统 Ubuntu ...
- es+mongodb 整合
之前公司项目的数据都是从mysql查询,后面需求变更:同时技术上相应的也要改变策略,决定将mongodb和mysql的数据通过es建立索引来查询: 对于还没有接触或者真正了解es的可以先看一下相关Lu ...
- Java-技术专区-技术栈分析辨证方法
1.好多公司动不动就JVM.高并发.分布式.微服务等等,我没有实际经验. 2.从事Java开发三年了,目前的职位是高级Java工程师,感觉技术和工资都到了瓶颈,对以后的发展方向有些迷茫. 3.加班时间 ...
- Oracle中常见的Hint(一)
Oracle中的Hint可以用来调整SQL的执行计划,提高SQL执行效率.下面分类介绍Oracle数据库中常见的Hint.这里描述的是Oracle11gR2中的常见Hint,Oracle数据库中各个版 ...
- shell变量的间接引用
- Delphi如何获取一个字符串再另一个字符串中最后一次出现的位置
uses StrUtils; function ReversePos(SubStr, S: String): Integer; var i : Integer; begin i := Po ...
- MySQL不支持事务处理的解决方法
MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理. 在MySQL中,只有InnoDB存储引擎类型的数据表才能支持事务处理. 因此,如果想让MySQL支持事务处理,只要将 ...
- 【leetcode】961. N-Repeated Element in Size 2N Array
题目如下: In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is r ...
- Vue学习笔记【5】——如何定义一个基本的Vue代码结构
插值表达式{{}} 和 v-text 默认 v-text 是没有闪烁问题的: v-text会覆盖元素中原本的内容,但是 插值表达式只会替换自己的这个占位符,不会把 整个元素的内容清空 v-cloak ...