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只要用来数据转换,在园里已经有很多 ...
随机推荐
- Python-02 生成器表达式,列表推导式
列表推导式和生成器表达式 列表推导式,生成器表达式1,列表推导式比较直观,占内存2,生成器表达式不容易看出内容,省内存. [ 变量(加工后的数据) for 变量i in 可迭代的数据类型 ] 列表 ...
- ArcGis 创建Annotation注记要素类、添加注记要素 并加载到Activeview AO C#
AO中一般有两种方式存储图面注记元素,一种使用TextElement,它是文档级的元素,编辑后要通过文档(mxd)保存:另一种是使用Annotation要素类,它是一个独立的要素类(featurecl ...
- document.createDocumentFragment()的用法
createDocumentFragment有什么作用呢? 调用多次document.body.append(),每次都要刷新页面一次.效率也就大打折扣了,而使用document_createDocu ...
- python之arrow时间处理模块
首先安装 pip install arrow 直接创建arrow对象 print(arrow.get(2019, 1, 23)) # 2019-01-23T00:00:00+00:00 print(a ...
- linux netstat 统计连接数查看外部(转)
转自:http://boy-liguang.blog.sohu.com/187052443.html linux netstat 统计连接数查看外部 2011-10-11 08:52阅读(16333) ...
- eclipse中server location为灰色,不能修改
当自己用eclipse写好了web项目后,也同时配置了服务器(tomcat6), 上面部署完毕后,直接访问http://localhost:8080 发现是 无法访问的,这是因为,Servers这里的 ...
- 防火墙---CentOS
1.查看防火墙状态 firewall-cmd --state 2.停止防火墙 systemctl stop firewalld.service 3.禁止开机启动防火墙 systemctl disabl ...
- fastDFS配置文件 fdfs_client.conf
# connect timeout in seconds# default value is 30sconnect_timeout=30 # network timeout in seconds# d ...
- 【网络】Ping 的TTL理解
一.含义 “TTL”是生存时间(Time To Live)的意思 关于时间与跳的讨论, https://www.zhihu.com/question/61007907 一开始理解为time to le ...
- Ubuntu下终端命令安装sublime
Ubuntu下终端命令安装sublime出现软件包无法定位 sublime-text-install 且多次换源不成功 建议采用离线安装 安装教程如下 用Ubuntu上的浏览器下载一个 Sublime ...