- Swift-指定与便利构造函数
曲中论
指定与便利构造函数:1、概念:指定:指定构造器将初始化类中提供的所有属性,并调用合适的父类构造器让构造过程沿着父类链继续往上进行。每一个类都必须至少拥有一个指定构造器便利:便利构造器是类中比较次要的、辅助型的构造器可以定义便利构造器来调用同一个类中的指定构造器,并为部分形参提供默认值。2、便利得用法:需要在init关键字之前放置convenience关键字,并使用空格将它们俩分开3、必须遵守的规范
- 面试题35_复杂链表的复制
shenghaishxt
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题解一使用哈希表保存原链表和复制后链表的指针。第一个遍历将原链表的next指针复制一遍,同时保存对应的指针(确保原链表中的每一个节点都能在复制后链表中找到)。第二个遍历将原链表的
- swift-基本运算符2
下页天
运算符分为一元、二元和三元运算符:一元运算符对单一操作对象操作(如-a)。一元运算符分前置运算符和后置运算符,前置运算符需紧跟在操作对象之前(如!b),后置运算符需紧跟在操作对象之后(如c!)。二元运算符操作两个操作对象(如2+3),是中置的,因为它们出现在两个操作对象之间。三元运算符操作三个操作对象,和C语言一样,Swift只有一个三元运算符,就是三目运算符(a?b:c)。受运算符影响的值叫操作
- swift-改变UIAlertController文字的对齐方式
命运建筑师fly
需求:原生UIAlertController文字都只能居中显示,在有些时候,我们需要提示文字左对齐的呀,就需要用代码来修改了实现:定义importUIKit//用于UIAlertController的文字偏移varsubviews:[UIView]?extensionUIAlertController{varTJL_titleLabel:UILabel?{set{}get{ifTJL_viewAr
- Swift-子视图 不触发 添加到父视图的Tap手势
时光燕
为父View添加tap手势lettap=UITapGestureRecognizer.init(target:self,action:#selector(self.dismissView))tap.delegate=self//设置tap手势代理self.view.addGestureRecognizer(tap)//添加tap手势实现tap手势的代理方法extensionIESpeechView
- swift- UISearchController的基本使用
Ismail丶
闲的没事写了写swift,记录一下比较坑的控件!!声明varjcSearchView=UISearchController()添加UISearchControllerfuncjcAddSearchViewController()->Void{letvc=JFSearchResultViewController()jcSearchView=UISearchController.init(search
- 《剑指offer第二版》面试题35:复杂链表的复制(java)
castlet
题目描述题目描述:复制一个复杂链表,在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个sibling指针指向链表中的任意节点或者null。解题思路:原始链表为:A(C)->B(E)->C(null)->D(B)->E(null)复制原始链表节点N,创建N',并将N'链接到N的后边,链表变为:A(C)->A'(null)>B(E)->B'(null)->C(null)->C'(nu
- leetcode刷题 链表相关 python
wordplay_
leetcodepython
链表相关python—————剑指offer—————easy1)JZ6从尾到头打印链表2)JZ24反转链表3)JZ25合并两个排序的链表4)JZ52两个链表的第一个公共结点5)JZ23链表中环的入口结点(mid)6)JZ22链表中倒数最后k个结点7)JZ18删除链表的结点8)JZ83删除排序链表中的重复元素mid9)JZ35复杂链表的复制—————剑指offer—————easy1)JZ6从尾到
- Day21 从上到下打印二叉树 + 复杂链表的复制 + 数组中数字出现的次数 II
吃掉夏天的怪物
TODO:理解数组中数字出现的次数的有限状态机方法。一、剑指Offer32-III.从上到下打印二叉树III(中等)方法一自己搞的最朴素的方法,层序遍历classSolution{public:vector>levelOrder(TreeNode*root){if(root==nullptr)return{};queueque;que.push(root);vector>res;boolflag=
- Swift-进阶:泛型
辉辉岁月
本文主要介绍泛型及其底层原理泛型泛型主要用于解决代码的抽象能力+代码的复用性例如下面的例子,其中的T就是泛型functest(_a:T,_b:T)->Bool{returna==b}//经典例子swap,使用泛型,可以满足不同类型参数的调用funcswap(_a:inoutT,_b:inoutT){lettmp=aa=bb=tmp}类型约束在一个类型参数后面放置协议或者是类,例如下面的例子,要求类
- Swift Mirror原理解析
深圳_你要的昵称
前言上篇SwiftMirror&Error主要是讲解了Mirror的一个常见的应用场景:JSON解析,但是里面的原理是怎样的?底层源码流程是如何处理反射呢?本篇文章将为大家详细解析Mirror的底层实现流程。一、Mirror架构大致分析首先我们大致来看看Mirror的架构,大概有哪些部分构成Mirror.swift源码路径swift->stdlib->public->core->Mirror.sw
- 2021-03-12 数据结构 剑指 Offer 35. 复杂链表的复制
MicrosoftCEOs
ScreenShot2021-03-12at10.36.11AM.png方法一:拼接+拆分构建拼接链表ScreenShot2021-03-12at10.37.47AM.png2.构建所有random连接ScreenShot2021-03-12at10.38.29AM.png拆分ScreenShot2021-03-12at10.39.24AM.png实现:classSolution:defcopyR
- Swift-闭包
捕梦少女的梦想
闭包是swift中非常重要的一个知识点。类似于objective-c中的block,其实函数就相当于一个特殊的闭包。闭包需要提前写好,在适当的时候再执行。1、定义闭包闭包的格式是(参数列表)->(返回值类型)in实现代码举一个最简单的例子。用常量记录一个代码块,按住option键就能看到,b1是一个闭包。再到适合的地方去调用它。闭包1.pngletb1={print("干掉他们")}b1()再来看
- 面试题35:复杂链表的复制
scott_alpha
题目:请实现函数clone(ComplexListNodehead)复制一个复杂链表。在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个sibling指针指向链表中的任意节点或者null。思路:把问题拆分成三个步骤,第一步先复制所有节点和节点的next,并把复制的节点接在原节点后面,第二步复制节点的sibling,最后再把复制的节点拆分出来。解决方案:publicclassQue
- 面试题35. 复杂链表的复制
小刘一定要努力
题目描述:请实现copyRandomList函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个random指针指向链表中的任意节点或者null。示例1:image.png输入:head=[[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例2:image
- LeetCode刷题——剑指offer中链表题目汇总
艾醒(AiXing-w)
LeetCode链表leetcode数据结构
系列文章目录每日一题题目汇总剑指offer中简单遍历查找题目汇总剑指offer动态规划汇总剑指offer二叉树题目汇总剑指offer中链表题目汇总系列文章目录剑指Offer06.从尾到头打印链表(简单)剑指Offer18.删除链表的节点剑指Offer22.链表中倒数第k个节点剑指Offer24.反转链表(简单)剑指Offer25.合并两个排序的链表剑指Offer35.复杂链表的复制(中等)剑指Of
- LeetCode 链表相关题目汇总
chengzic1999
OJ题目链表leetcodejava指针面试
文章目录剑指Offer06.从尾到头打印链表剑指Offer18.删除链表的节点剑指Offer22.链表中倒数第k个节点剑指Offer24.反转链表剑指Offer25.合并两个排序的链表剑指Offer35.复杂链表的复制剑指Offer36.二叉搜索树与双向链表剑指Offer52.两个链表的第一个公共节点234.回文链表主要是《剑指offer》书中的题目剑指Offer06.从尾到头打印链表https:
- Swift-面向协议编程
6ffd6634d577
前言OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行面向对象开发OOPOOP的优点包括可重用性,继承,可维护性,对复杂性的隐藏(封装),抽象性,多态性,对一个类的属性和方法的访问权限控制。传统的面向对象开发思维方式是将类中实现的相似方法抽取出来,接着放入一个Base类,然后继承于Base类后各个类即可找拥有相同的方法,不用再一个个手动实现。比如:一个
- Swift-反馈样式|UITextView输入视图
麦穗0615
前言:趁着写项目,同时写点小的工具,以后能够惯用的,但是我写字数统计、占位符、别的没有写,肯定还缺什么,如果还有什么可以补的,可以将代码复制到评论区,一起讨论,Thanks!目录:一、展示图例二、代码示例三、使用方法一、展示图例11112.gif二、代码示例importUIKitclassFeedBackView:UIView,UITextViewDelegate{typealiasFeedBac
- Swift-继承
DevXue
一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类)。在Swift中,继承是区分「类」与其它类型的一个基本特征。在Swift中,类可以调用和访问超类的方法、属性和下标,并且可以重写这些方法,属性和下标来优化或修改它们的行为。Swift会检查你的重写定义在超类中是否有匹配的定义,以此确保你的重写行为是正确的。可以为类中继承来的属性添加属性观察器,
- 【算法】——链表题汇总
汪汪要努力呀
数据结构算法
关于链表相关的题解在我之前的博客里面有过简单的讲解,这篇博客主要是做一个总体的汇总,涉及到整个链表的创建、增删改查等一系列的操作。还有题目的汇总。文章目录一、单链表的初始化二、剑指1、反转链表2、复杂链表的复制3、删除链表的指定结点4、从尾到头打印链表5、合并两个有序链表6、链表中倒数第k个结点7、两个链表的第一个公共节点7、二叉树与双向链表三、其他1、圆圈中最后剩下的数字2、返回链表的中间结点3
- C++——map和set的基本使用
小堃学编程
c++开发语言
目录一,关联式容器二,键值对三,set的使用3.1set介绍3.2set的插入和删除3.3set的pair3.4multiset四,map的使用4.1map介绍4.2map实现简易字典4.3map实现统计次数4.4map的[]五,使用map或set解决部分OJ题5.1复杂链表的复制5.2前K个高频单词5.2.1解法一:使用sort算法排序5.2.2使用multimap解决5.2.3使用set的特性
- Swift-协议
床前明月光q
协议概述Swift中的协议用于定义方法和属性,但协议本身并不进行实现,而是采纳该协议的类具体实现。协议的定义protocolPreson{//协议内容}协议对属性的要求1.对于可读可写的的属性,则实现属性不能是常量存储属性或只读的存储属性2.对于只读的属性,则实现属性可以是任意类型的属性。3.允许为只读属性实现有效的set方法。协议对方法的要求1.方法不需要方法体2.方法不可以有名默认值//(协议
- 剑指offer编程题—复杂链表的复制
零岁的我
历时8天的鹅厂暑期实习面试告一段落,终于又可以安静刷题了(等结果出来了再更一波面经)。题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题解思路1遍历链表,复制每一个节点,新的节点链接在原节点的后面。假设原链表为:A->B->C
- 剑指Offer:25-复杂链表的复制
jackmxp
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)原理假设原链表是A->B->C->D,复制其中的每一个节点,并插入到后面,最后的形式是这样。A->A'->B->B'->C->C'->D->D'填充A'、B'、C'、D'的随机指
- Swift - 使用Alamofire通过HTTPS进行网络请求,及证书的使用
yunxiu
转自:http://www.hangge.com/blog/cache/detail_1052.html(本文代码已升级至Swift3)我原来写过一篇文章介绍如何使用证书通过SSL/TLS方式进行网络请求(Swift-使用URLSession通过HTTPS进行网络请求,及证书的使用),当时用的是URLSession。本文介绍如何使用Alamofire来实现HTTPS网络请求,由于Alamofire
- LeetCode历程 By UnflyBrenda
unflyBrenda
leetcode算法leetcode刷题总结
目录一、链表(1)链表逆序、翻转链表(easy&&medium)(2)链表求交点(easy)(3)链表求环(medium)(4)链表划分(medium)(5)复杂链表的复制(深度拷贝)(hard)(6)排序链表的合并(easy&&hard)二、栈,队列,堆(1)使用队列实现栈&&使用栈实现队列(easy&&easy)(2)包含min函数的栈(easy)(3)简单的计算器(hard)(4)数组中第K
- swift-碰到的问题
彭同学她同桌
Swiftswift开发语言ios
如何让工程不使用storyboard和scene删除info.plist里面的ApplicationScenemainifest删除SceneDelegate.swift删除AppDelegate.swift里面的这两个方法funcapplication(_application:UIApplication,configurationForConnectingconnectingSceneSess
- 剑指 Offer 35. 复杂链表的复制
BitterOutsider
题目描述请实现copyRandomList函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个random指针指向链表中的任意节点或者null。输入:head=[[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]解题思路遍历链表,将每一个节点存入nodes数
- Swift-协议
MissSunRise
协议protocolDrawable.pngclassPersonDrawable{.png设置协议后有自动补齐,而且是必实现,不然会报错的。Static、class为了保证类与结构体都能够使用,协议中必须用static定义类型方法、类型属性、类型下标protocolDrawable.png不为static会报错mutating协议中的实例方法需要使用mutating来修饰protocolDraw
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str