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项目中使用继承的更多相关文章

  1. 在C#MVC三层项目中如何使用SprintNet

    0.添加dll文件 1.首先在根目录下新建一个文件夹[Config],然后新建2两个xml文件. 1-1[controllers.xml]用来配置需要创建的对象 1-2[service.xml]用来配 ...

  2. Django项目中模板标签及模板的继承与引用【网站中快速布置广告】

    Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...

  3. javascript中的继承与深度拷贝

    前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...

  4. iOS 之项目中遇到的问题总结

    昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...

  5. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  6. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

  7. Web API项目中使用Area对业务进行分类管理

    在之前开发的很多Web API项目中,为了方便以及快速开发,往往把整个Web API的控制器放在基目录的Controllers目录中,但随着业务越来越复杂,这样Controllers目录中的文件就增加 ...

  8. 关于Java中的继承和组合的一个错误使用的例子

    [TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...

  9. AutoMapper之ABP项目中的使用介绍

    最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...

随机推荐

  1. qcom_IMS_conference_call小结

    1conference call建立 用QXDM抓qcom log: 1.拨号盘*#*#825364#*#*    ,  进入抓log UI 2.Connectivity-->USB Port ...

  2. CFile CStdioFile CArchive 文件操作之异同(详细)

    两者的主要区别: 一. CFile类操作文件默认的是Binary模式,CStdioFile类操作文件默认的是Text模式.    在Binary模式下我们必须输入'\r\n',才能起到回车换行的效果, ...

  3. awk 按小时 统计接口调用次数

    #统计所有接口总量awk -F ' ' '{a[$7]++} END{for(i in a){print i,a[i] | "sort -r -k 7"}}' accesslog/ ...

  4. LLppdd has a dream!

    LLppdd has a dream Time Limit: 3 s Memory Limit: 256 MB 题目背景 LLppdd经过他充满坎坷的初三后,他的成绩也充满了坎坷. 临近中考了,他希望 ...

  5. 使用vscode搭建本地的websocket

    首先在服务器方面,网上都有不同的对websocket支持的服务器: php - http://code.google.com/p/phpwebsocket/ jetty - http://jetty. ...

  6. 为何在新建STM工程中全局声明两个宏

    在uVision中新建STM32工程后,需要从STM32标准库中拷贝标准外设驱动到自己的工程目录中,此时需要在工程设置->C/C++选项卡下的Define文本框中键入这两个全局宏定义. STM3 ...

  7. windows线程函数必须为全局函数或者静态函数(转)

    调用CreateThread(...)创建线程时要指定所创建线程的入口函数,此入口函数只能是全局函数或者类的静态成员函数. 全局函数很容易理解,但如果是类的成员函数则必须是静态成员函数,为何, 因为类 ...

  8. CSIC_716_20191225【HTML基础入门】

    HTTP协议 超文本传输协议HyperText Transfer Protocol 四大特性: 1.一次请求一次响应 2.基于TCP/IP协议,作用于应用层 3.无状态 4.无连接 数据格式: 1.请 ...

  9. vue 同时使用过渡和动画

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Vue学习笔记【23】——Vue组件(组件的定义)

    定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可: 组件化和模块化的不同: ...