- swift 对象转Json
泓博
swift
在Swift中将对象转换为JSON可以通过以下方法实现:使用Codable协议Swift的Codable协议(Encodable和Decodable的组合)是处理JSON编码和解码的推荐方式。structPerson:Codable{varname:Stringvarage:Int}letperson=Person(name:"John",age:30)letencoder=JSONEncoder
- Qt, OpenCV与OpenGL协同作战:图像处理与三维图形界面的完美结合
奇树谦
QTqtopencv图像处理
原文链接:https://developer.aliyun.com/article/1463740文章目录Qt,OpenCV与OpenGL协同作战:图像处理与三维图形界面的完美结合1.引言图像处理与三维图形界面的重要性Qt,OpenCV与OpenGL简介与应用场景QtOpenCVOpenGL结合Qt,OpenCV与OpenGL的优势与价值2.Qt基础知识与特性Qt库的组成与功能Qt库的安装与使用Q
- python 异步Web框架sanic
程序员霄霄
软件测试python前端开发语言软件测试自动化测试功能测试程序人生
我们继续学习Python异步编程,这里将介绍异步Web框架sanic,为什么不是tornado?从框架的易用性来说,Flask要远远比tornado简单,可惜flask不支持异步,而sanic就是类似Flask语法的异步框架。github:GitHub-sanic-org/sanic:Accelerateyourwebappdevelopment|Buildfast.Runfast.不过sanic
- Kubernetes自动伸缩全解析:HPA、VPA与CA的协同工作原理
倪俊炼
Kubernetes自动伸缩全解析:HPA、VPA与CA的协同工作原理developer-roadmapdeveloper-roadmap项目地址:https://gitcode.com/gh_mirrors/deve/developer-roadmap概述在现代云原生环境中,应用的负载往往具有波动性,静态配置的资源很难满足动态需求。Kubernetes提供了三种自动伸缩机制来应对这一挑战:Hor
- swiftui TextEditor去除背景方法
泓博
swiftui
去除TextEditor背景的方法使用.scrollContentBackground(.hidden)修饰符可以隐藏TextEditor的背景。该方法适用于iOS16及以上版本。TextEditor(text:$text).scrollContentBackground(.hidden).background(Color.clear)使用ZStack叠加透明背景通过ZStack将TextEdit
- swiftUI iOS16和iOS15兼容
泓博
cocoamacosobjective-c
兼容性策略在SwiftUI中确保应用同时支持iOS16和iOS15,需针对不同系统版本采取条件化代码适配。关键是通过API可用性检查(@available)和运行时版本检测(if#available)实现功能分派。//示例:根据版本选择不同的修饰符if#available(iOS16,*){view.modifier(iOS16SpecificModifier())}else{view.modif
- [论文阅读] 软件工程 | 探索软件生态系统中的开发者体验关键因素
探索软件生态系统中的开发者体验关键因素:从研究到实践引文格式@article{Zacarias2025,title={ExploringDeveloperExperienceFactorsinSoftwareEcosystems},author={Zacarias,RodrigoOliveiraandAntunes,L{\'e}oCarvalhoRamosandBarros,M{\'a}rciod
- [论文阅读] 人工智能 + 软件工程 | AI 与敏捷开发的破局之路:从挫败到成功的工作坊纪实
张较瘦_
前沿技术论文阅读人工智能软件工程
AI与敏捷开发的破局之路:从挫败到成功的工作坊纪实论文信息arXiv:2506.20159AIandAgileSoftwareDevelopment:FromFrustrationtoSuccess–XP2025WorkshopSummaryTomasHerda,VictoriaPichler,ZheyingZhang,PekkaAbrahamsson,GeirK.HanssenSubjects:
- 企业级 DevOps 转型实践与自动化运维优化
QuantumWalker
运维devops自动化
```html企业级DevOps转型实践与自动化运维优化企业级DevOps转型实践与自动化运维优化随着信息技术的快速发展,企业对软件开发和运维的需求日益增长。传统的开发模式已无法满足现代企业的敏捷需求,而DevOps的兴起为企业带来了全新的解决方案。本文将探讨企业如何通过实施DevOps转型,结合自动化运维工具和技术,提升整体运营效率。DevOps背景与核心理念DevOps是Development
- DevOps 详解:概念、核心价值与实践体系
全栈派森
devops运维后端程序人生
大家好,我是PetterGuo一位热爱探索的全栈工程师。在这里,我将用最接地气的方式,带你玩转前端、后端到DevOps的硬核技术,解锁AI,助你打通技术任督二脉,成为真正的全能玩家!!如果对你有帮助,请点赞+收藏+关注鼓励下,学习公众号为全栈派森。在数字化转型加速的今天,DevOps已成为企业提升软件交付效能的关键方法论。作为Development(开发)与Operations(运维)的深度融合,
- 小橘子影视-安卓架构分析,最新版完美适配ios+安卓
2501_92516489
百度经验分享音视频其他
近年来,移动视频播放工具在技术架构上逐渐趋向轻量、组件化与模块解耦,典型案例之一是近期版本的小橘子影视。本文将聚焦小橘子影视最新版的结构特征与核心技术逻辑,分析其在iOS平台下的功能布局、播放引擎、资源解析策略以及数据本地化设计,供开发者进行横向对比或技术借鉴。一、小橘子影视最新版概况小橘子影视最新版是一个基于资源聚合思路构建的视频播放应用,运行环境为iOS12及以上版本,界面采用SwiftUI与
- 链接拉起微信小程序
月深夜微凉
微信小程序小程序微信
前言:之前做过RN的app拉起小程序外链拉起app,需求变更,需要支持微信分享出去的链接拉起小程序,这里对微信分享做个补充准备工作:微信开放平台绑定小程序绑定时需要管理员账号app和小程序同一开发平台时,不用其他额外设置,如果不是同一平台,需要app绑定小程序获取access_token文档链接:https://developers.weixin.qq.com/miniprogram/dev/Op
- 在 VSCode 中打开 Overleaf 项目
Hash the Hacker
vscode
1.获取Overleafsession(1)登陆Overleaf主页,overleaf.com/project(2)F12打开developer模式,选择“Network”(3)在列表中选择“Project”(4)(5)在“Header”里找到“RequestHeaders”(6)(7)把Cookie中的“overleaf_session2”字段整个复制出来,即:从“overleaf_sessio
- Nginx安全防护与HTTPS部署实战
lml4856
nginx安全https
一.核心安全配置1.编译安装Nginx(1)安装支持软件Nginx的配置及运行需要pcre、zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成命令:dnfinstall-ygccmakepcre-develzlib-developenssl-develperl-ExtUtils-MakeMakergitwgettar(2)创
- iOS应用开发中的性能调试与数据分析:一套完整实战工具流程
HTTPwise
httpudphttpswebsocket网络安全网络协议tcp/ip
iOS开发者在调试一个复杂App时,经常会遇到多个维度的问题:启动卡顿、网络慢、内存异常、日志难追踪、数据文件结构混乱。这些问题往往不是靠一个工具能解决的,而是需要把多个工具按功能拆分组合起来,各自负责一块。这篇文章记录我在调试一个中大型iOS应用(Flutter+Swift混合架构)时,用到的一整套工具组合和真实流程,从性能分析到日志获取,再到数据导出与崩溃追踪,工具各司其职,不踩谁也不捧谁,只
- torch-gpu版本 anaconda配置教程
GXYGGYXG
python
教程Pytorch的GPU版本安装,在安装anaconda的前提下安装pytorch_pytorch-gpu-CSDN博客版本对应PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客cuda下载地址CUDAToolkitArchive|NVIDIADevelopercudacudnn
- Centos 系统安装 Python3.8.5
程序视界Up
centoslinuxpython
1.准备编译环境及配置环境依赖yuminstallgccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel-y2.下载Python的源码包并解压参考地
- 使用mit协议的编程语言_从使用诺基亚功能手机进行编程到如何为MIT初创公司工作的过程如何
cumi6497
大数据人工智能java编程语言python
使用mit协议的编程语言In2012,IwasjustavillageboyfromNigeriawhohadnothingbutadreamandaNokiafeature(J2ME)phone.Today,I’ma19yearoldAndroiddeveloperwhohasworkedonover50appsandcurrentlyworksforanMITstartup.MynameisE
- 61-Oracle SQL Monitor-实操
远方1609
oraclesql数据库database大数据
小伙伴们是不是一直使用ASH、AWR进行整体性能观测和排查,偶尔也需要单个sql进行监测。用sqlplus中脚本生成监控报告,有些繁琐,如果有条件直接使用SQLDEVELOPER图形界面观察(EMCC,EM24ai上直接查询更方便)。一、SQLMonitor核心功能与价值实时性能监控动态捕获SQL执行细节,包括执行计划、等待事件、物理/逻辑读、CPU时间、I/O开销等。自动监控执行时间超过5秒、并
- vue EventSource使用及配置请求头、webpack代理配置
我的心巴
vue.js前端javascript
EventSourcePolyfill是EventSource封装的一个方法,可以配置请求头。官方API:https://developer.mozilla.org/en-US/docs/Web/API/EventSource一、安装依赖npminstalleventsourcenpminstallevent-source-polyfill二、不需要加请求头时consteventSource=ne
- 什么是scrum中的3355?
CQ_0712
scrum
一、什么是scrum中的3355Scrum中的3355是指Scrum框架中的三个核心角色、三个工件、五个关键事件和五个价值观。二、三个核心角色三个核心角色:包括产品负责人(ProductOwner)、ScrumMaster和开发团队(DevelopmentTeam)。产品负责人主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。Scrum
- 【软考高级系统架构论文】论基于构件的软件开发方法及其应用
_Richard_
2025年软考系统架构师系统架构
论文真题基于构作的软件开发(Component-BasedSoftwareDevelopment,CBSD)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS(Commercial-Off-the-Shelf)构件,也可以是通过其它途径获得的构件(如自行开发)。CBSD将软件开发的重点从程序编写转移到了基于已有构件的组装,以更快地构
- 云原生之DevOps
1、DevOps定义DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。—维基百科1.1、DevOps是什么?DevOps是一种转型、变革、实践和团队文化。是一种包括
- 微信小程序在wxml文件中使用函数
浅箬
微信小程序日常问题总结小程序WXSwxml使用函数
这是微信小程序WXS使用链接https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/具体使用方法:1、在wxml中使用module.exports={isDouble:function(n){returnn>9?true:false}}直接在代码段中使用{{function.isDouble(item.number)
- Python IDLE 一个简单易用的Python集成开发环境_idle能不能支持python开发和运行
阿里高级程序
2024年程序员学习python服务器开发语言
Python是一种高级编程语言,被广泛用于科学计算、数据分析、Web开发等领域。要编写和运行Python代码,您需要一个集成开发环境(IntegratedDevelopmentEnvironment,简称IDE)。PythonIDLE(IntegratedDeveLopmentEnvironment)是Python官方推荐的一种简单易用的IDE,特别适合初学者和小型项目。PythonIDLE提供了
- OpenRisc-54-play with OpenRISC based atlys board
Rill
OpenRiscopenrisc
1.OpenRISC1200softprocessorIntroductionTheOpenRISC1200(OR1200)isasynthesizableCPUcoremaintainedbydevelopersatOpenCores.org.TheOR1200designisanopensourceimplementationoftheOpenRISC1000RISCarchitecture.
- 利用ms-swift微调LLaVA-OneVision
moTcream
人工智能AIGC
利用ms-swift微调LLaVA-OneVision资料合集环境安装目录详情训练模型下载模型准备训练(train)数据和验证集(validation)数据提前改一些小bug脚本Merged-LoRA脚本Infer脚本资料合集模型huggingface务必用上述链接,用lmms-lab在ms-swift框架下会报错代码仓库ms-swift官方文档命令行参数详解官方文档环境安装SWIFTdepend
- 【闲谈】对于c++未来的看法
CodeWithMe
C/C++c++开发语言
对于C++未来看法C++作为一门诞生于上世纪的编程语言,在软件工业发展史上扮演了不可替代的角色。尽管近年来诸如Rust、Go、Swift、Kotlin等现代语言相继崛起,C++依然在系统软件、高性能服务、嵌入式等关键领域中发挥着主力作用。本文将从C++的当前应用前景、潜在风险,以及未来需要重点关注的方向进行全面分析。一、C++的应用前景:老树仍发新芽1.系统级软件依然离不开C++操作系统内核、驱动
- AI大模型ms-swift框架环境准备教程
AI大模型入门教程
人工智能swift开发语言深度学习开源机器学习
1.前言在人工智能的发展进程中,大模型已然成为各个领域实现突破与创新的核心驱动力。而swift框架作为大模型开发的得力助手,为开发者们提供了高效且便捷的工具集,让大模型开发不再是遥不可及的挑战。在上一篇文章中,我们对swift框架进行了全景式的概览,了解了其定义、背景、核心功能以及在众多应用场景中的强大潜力。现在,我们将深入到开发实践层面,为大家详细介绍如何快速入门swift框架开发,从准备工作到
- 7种方法提高源码阅读技巧
学会了没
源码阅读编程技巧
Readingsourcecodeisinthejobdescriptionofasoftwaredeveloper.However,thisexperienceisnotalwayspleasant.Noteveryonewouldliketoreadsomeoneelse’scodebecausetheyfinditboring,sometimesfrustrating.Therearecas
- 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