阿翔编程学-Castor

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,习进阶更高效! 阅读详情

代码如下:

package com.windtec.offline.server.service.gongan;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;

import org.exolab.castor.mapping.MappingException;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;

import com.windtec.framework.BusinessException;

import com.windtec.hangan.gongan.bizcontrol.PSAuditSupport;
import com.windtec.hangan.gongan.pojos.PsAuditActivitymain;

/**
 * XML绑定公用服务类
 * @author caoxiang
 *
 */
public class CastorCommon {

 //操作类对象
 static PSAuditSupport pSAuditSupport;

 private String name;
 
 /**
  * 初始化
  *
  */
 public CastorCommon() {
  try {
   //对象化
   pSAuditSupport = new PSAuditSupport();
   //异常错误处理
  } catch (BusinessException e) {
   e.printStackTrace();
  }
 }
 
 public static void main(String[] args) {
  CastorCommon ooooooooooo = new CastorCommon();
  CastorCommon c = new CastorCommon();
  ooooooooooo.setName("caoxiang");
  c.setXmlBean(ooooooooooo,CastorCommon.class);
  Object oooo = c.getXmlBean(CastorCommon.class);
  CastorCommon cccc = (CastorCommon)oooo;
  System.out.println(cccc.getName());
 }
 
 /**
  * 返回XML绑定
  * @param classobject
  * @return
  */
 public Object getXmlBean(Class classobject) {
  //获得类名
  String className = classobject.getName().substring(classobject.getName().lastIndexOf(".")+1,classobject.getName().length());
  //文件名
  String filename = className + ".xml";
  //解析
  Unmarshaller un = new Unmarshaller(classobject);
  FileReader in = null;
  Object c;
  //Class.forName(classobject.toString()).newInstance();
  //c = (classobject.newInstance())c;
  try {
   in = new FileReader(filename);
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   c = null;
  }
  CastorCommon cdsadas = null;
  try {
   cdsadas = (CastorCommon) un.unmarshal(in);
   //System.out.println(cdsadas.getName());
  } catch (MarshalException e2) {
   c = null;
   e2.printStackTrace();
  } catch (ValidationException e2) {
   e2.printStackTrace();
   c = null;
  }
  try {
   in.close();
   c = null;
  } catch (IOException e1) {
   e1.printStackTrace();
   c = null;
  }
  CastorCommon cc = (CastorCommon)c;
  
  //返回
  return cdsadas;
 }
 
 /**
  * 设置XML绑定
  * @param object
  * @param classobject
  * @return
  */
 public boolean setXmlBean(Object object, Class classobject) {
  //获得类名
  String className = classobject.getName().substring(classobject.getName().lastIndexOf(".")+1,classobject.getName().length());
  String filename = className + ".xml";
  File file = new File(filename);
  Writer writer = null;
  try {
   writer = new FileWriter(file);
  } catch (IOException e) {
   e.printStackTrace();
  }
  //判断是否为null
  if(writer == null) {
   return false;
  }
  try {
   Marshaller.marshal(object, writer);
   return true;
  } catch (MarshalException e1) {
   e1.printStackTrace();
   return false;
  } catch (ValidationException e1) {
   e1.printStackTrace();
   return false;
  }
 }
 
//==================================================================================================================================
 
 /**
  * 设置BEAN到流中
  * @param vector
  * @return
  */
 public boolean setBean(Vector vector,A a,Map m) {
  try {
   //对象初始化
   CastorBean castorBean = new CastorBean();
   //设置
   castorBean.setMmmp(m);
   castorBean.setA(a);
   castorBean.setVname("a");
   castorBean.setGonganVector(vector);
   File file = new File("castor.xml");
   Writer writer = new FileWriter(file);
   Marshaller.marshal(castorBean, writer);
   Unmarshaller un = new Unmarshaller(CastorBean.class);
   FileReader in = new FileReader("castor.xml");
   CastorBean c = (CastorBean) un.unmarshal(in);
   in.close();
   System.out.println(c.getA().getUsername());
   System.out.println(c.getVname());
   System.out.println("ddd " + c.getMmmp().get("b"));
   B b = (B)c.getMmmp().get("b");
   System.out.println(b.getA().getUsername()+ " dddddddddd");
   Vector v = c.getGonganVector();
   Iterator vvv = v.iterator();
   while(vvv.hasNext()) {
    Map n = new HashMap();
    n = (Map) vvv.next();
    System.out.println(n.isEmpty());
   }
   //Map map = (Map) v.get(0);
   //System.out.println(v.get(0));
//   Iterator i =c.getGonganVector().iterator();
//   while(i.hasNext()) {
//    //Map castorBean2 = (Map) i.next();
//    //B b = (B) castorBean2.get("b");
//    //System.out.println(b.getBname());
//   }
   //System.out.println("ddd "+c.getGonganVector().size());
   //System.out.println(map.get("b"));
   return true;
  } catch(Exception e) {
   e.printStackTrace();
   return false;
  }
 }
 
 /**
  *
  * @param argv
  */
 public static void main2222(String[] argv) {
  A a = new A();
  a.setUsername("caoxiang");
  a.setPassword("123456");
  B b = new B();
  b.setBname("linlin");
  b.setA(a);
  Map map = new HashMap();
  map.put("b",b);
  VectorBase vb = new VectorBase();
  vb.setMap(map);
  CastorCommon cccc = new CastorCommon();
  cccc.setBean(vb,a,map);
 }
 
 /**
  * 转换为XML文件
  * @param argv
  * @throws IOException
  * @throws MarshalException
  * @throws ValidationException
  * @throws MappingException
  * @throws BusinessException
  */
 public static void main2(String[] argv)
  throws
   IOException,
   MarshalException,
   ValidationException,
   MappingException,
   BusinessException {
  PSAuditSupport pSAuditSupport = new PSAuditSupport();
  PsAuditActivitymain psAuditInspectoractivity =
   new PsAuditActivitymain();
  psAuditInspectoractivity =
   (PsAuditActivitymain) pSAuditSupport
    .inspectoractivityDAO
    .find("select p from PsAuditActivitymain p")
    .get(0);
  File file = new File("user_temp.xml");
  Writer writer = new FileWriter(file);
  Marshaller.marshal(psAuditInspectoractivity, writer);

  Unmarshaller un = new Unmarshaller(PsAuditActivitymain.class);
  //un.setMapping(mapping);
  FileReader in = new FileReader("user_temp.xml");
  PsAuditActivitymain c = (PsAuditActivitymain) un.unmarshal(in);
  if (c != null) {
   System.out.println("pk:" + c.getPk());
   System.out.println(c.getInitActivity().getPk());
  }
  in.close();
 }
 
 /**
  * @return
  */
 public String getName() {
  return name;
 }

 /**
  * @param string
  */
 public void setName(String string) {
  name = string;
 }

MATLAB 和 Python 代码用于 HGPSO 风电场布局优化.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数等专业的大生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

Agent Protocol 是一套智能体互操作与授权协议的软件开发工具包(SDK)集合

openJiuwen agent-protocol提供agent通信协议实现,包括MCP、A2A协议的C++ SDK

阿翔编程-Java杂文

Java基础:类,对象,注释,数据类型,成员变量,成员函数,运算符,控制语句,继承,多态,父类,子类,方法重载,方法覆盖,访问控制,包,静态变量,静态方法,抽象类,接口,线程。    J2EE开发: 输入流,输出流,TCP/IP操作,JDBC,SERVLET,集合框架,JSP    Struts:ACTION,FORMBEAN,STRUTS-CONFIG.XML,LOG,VALIDATOR   

曹翔 951

存储管理基于GPT分区表的硬盘标准化分区方案:Windows系统下多场景磁盘布局与文件系统配置规范

内容概要:本文档旨在规范计算机及服务器硬盘的分区标准,涵盖分区表类型选择、文件系统格式、标准分区结构及不同容量硬盘的分区参考方案。明确新设备应统一采用GPT分区表,支持大容量硬盘、UEFI启动和更高稳定性,禁用传统的MBR格式;规定EFI引导分区使用FAT32,系统与数据分区采用NTFS,确保兼容性与安全性。标准分区结构包括EFI引导分区(500MB)、MSR保留分区(16MB)、C盘系统分区(150GB~300GB)和D盘数据分区(剩余空间),并针对512GB、1TB和2TB以上硬盘提供具体容量分配建议,提升系统性能与数据管理效率。; 适合人群:IT运维人员、系统管理员、硬件部署工程师及相关技术人员; 使用场景及目标:①指导新装机或服务器部署时的硬盘合理分区;②防止因分区不当导致的系统卡顿、空间浪费或数据泄露;③统一企业内部设备部署标准,提升维护效率; 阅读建议:此文档为实操性技术规范,建议结合实际装机流程对照执行,并在部署前进行方案审核,确保符合GPT+UEFI标准架构要求。

标准控制柜_机箱机柜.rar

标准控制柜_机箱机柜.rar

分布式电源接入对配电网影响的研究(Matlab代码实现)

内容概要:本文围绕分布式电源接入对配电网的影响展开研究,利用Matlab进行建模仿真与代码实现,系统分析了分布式电源(如光伏、风电等)接入后对配电网在电能质量、潮流分布、电压稳定性、保护配置等方面的影响。研究涵盖了多种分布式电源类型与不同渗透率场景,通过构建典型的配电网模型,仿真其在正常运行及故障条件下的动态响应特性,重点探讨了分布式电源引起的电压越限、反向潮流、短路电流水平变化等问题,并提出了相应的优化调控策略与解决方案。同时,结合主动配电网的有功无功协调优化、鲁棒调度等高级应用,展示了如何借助现代优化算法提升系统接纳能力与运行经济性。; 适合人群:具备电力系统基础知识,熟悉Matlab/Simulink仿真环境,从事新能源接入、配电网规划与运行等相关领域的科研人员、工程师及高校研究生。; 使用场景及目标:①掌握分布式电源接入对配电网关键指标的影响机制;②习基于Matlab的配电网建模与仿真方法;③理解并实现主动配电网的协调优化调度算法;④为实际工程中分布式电源并网方案设计与问题诊断提供理论支持和技术参考。; 阅读建议:建议读者结合文中提供的Matlab代码,逐步复现仿真案例,深入理解模型构建与算法实现细节,并尝试在不同参数设置或网络结构下进行拓展实验,以增强对系统动态行为的认知与分析能力。

CMake Linux 交叉编译工具链模板(嵌入式构建+CMake/toolchain+工程模板+交叉编译配置)

包含可本机构建的 C 工程和 Linux 目标 toolchain 文件,使用 CROSS_COMPILE 与可选 TARGET_SYSROOT 配置编译器及依赖搜索范围。 适用于嵌入式软件开发人员、驱动开发入门者及相关技术习者。资源包含源码或模板、使用说明及验证范围说明。CMake 3.16+、C 编译器和对应构建工具;交叉编译需额外安装工具链。

多轴零件.prt_UG四五轴CNC编程练习图档.rar

多轴零件.prt_UG四五轴CNC编程练习图档.rar

352.zip

当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。

1+X Web前端开发题目集

源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 此资源为1+X Web前端开发的相关实例,题目形式为实践操作题,共计包含11个题目(其中部分题目与作者的其他资源存在题目重复现象)。该内容不提供答案与解析部分(若需答案及解析,可参考作者博客中的详细分析,链接为https://blog.csdn.net/weixin_53231455?spm=1011.2124.3001.5343),所有题目均围绕前端开发的核心知识点进行设计。

计及光伏波动性的主动配电网有功无功协调优化(Matlab代码实现)

内容概要:本文针对计及光伏波动性的主动配电网有功无功协调优化问题,提出一种基于多目标粒子群优化算法(MOPSO)的协同优化方案,并通过Matlab代码实现仿真验证。研究充分考虑光伏发电的随机性与间歇性特征,构建了一个综合有功功率调节、无功功率补偿、电压质量提升及网络损耗最小化的多目标优化模型,旨在提升高渗透率光伏接入下主动配电网的运行稳定性与经济性。通过优化算法求解实现有功与无功资源的协调调度,有效缓解因光伏出力波动引起的电压越限与潮流分布不均等问题,增强了系统的调节能力与鲁棒性。; 适合人群:具备电力系统分析基础和Matlab编程能力的科研人员,以及电气工程、自动化等相关专业的研究生和高年级本科生。; 使用场景及目标:①用于研究高比例可再生能源接入背景下主动配电网的优化运行策略;②为电力系统仿真教与科研提供可复现的算法模型与代码实例,目标是掌握多目标智能优化算法在电力系统优化调度中的建模方法、实现流程及其工程应用价值。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现细节,重点关注目标函数的设计、约束条件的处理方式以及粒子群算法的改进策略,同时可通过调整参数设置、测试不同场景以深入理解优化机制与系统响应特性。

电脑机箱存放柜-2_机箱机柜.rar

电脑机箱存放柜-2_机箱机柜.rar

Glight机柜_机箱机柜.rar

Glight机柜_机箱机柜.rar

双向全桥DCDC变换器研究

源码直接下载地址: https://pan.quark.cn/s/2c7f36758013 ### 双向全桥DCDC变换器研究 #### 一、引言 随着现代电力电子技术的持续进步,双向DCDC变换器作为一种能够实现能量双向传输的直流到直流转换装置,在多个领域内获得了普遍的应用。这类变换器不仅可以用于不间断电源系统(UPS)、航天电源系统、直流电机驱动系统以及混合动力汽车等领域,而且还可以明显提升系统的整体性能和可靠性。本文将详细探讨双向全桥DCDC变换器的基础原理、控制方法以及实际应用情况。 #### 二、双向DCDC变换器概述 双向DCDC变换器是一种能够在两个方向上传输能量的直流变换器,其主要优势包括高效率、小体积以及灵活性等特性。相较于传统的单向DCDC变换器,双向变换器能够更加适合现代复杂多变的电源管理系统需求。 ##### 1. 基本概念 双向DCDC变换器的核心在于其能够依据需求调节能量的双向流动,这使得它在各种应用环境中都表现出色。例如,在混合动力汽车中,双向变换器可以在车辆加速时提供额外的能量,并在制动时回收能量,从而增强能源利用效率。 ##### 2. 拓扑结构 双向变换器的拓扑结构多种多样,但其中最常见的是全桥拓扑结构。全桥拓扑结构由四个开关管组成两个桥臂,这种结构不仅提供了更多的控制自由度,还能够方便地实现开关管的软开通和软关断,进而提高变换器的开关频率并减小体积。 #### 三、双向全桥DCDC变换器控制策略 对于双向全桥DCDC变换器而言,有效的控制策略是确保其实现高效能量转换的关键。本文提出了一种基于全桥拓扑结构的新型软开关双向DCDC变换器控制策略,具体涵盖以下几个方面: 1. **软开关技术**:通过周密的规划,使得开关管在开通和关断...

华为eNSP单臂路由配置

代码转载自:https://pan.quark.cn/s/a3013c73f9ed 本文将系统阐述华为eNSP单臂路由配置的实践案例,涵盖实验目标、实验架构、实验环节、实验流程及实验规范等多个方面。 一、实验目标 本实验旨在加深对网络结构的认识,熟练运用单臂路由技术达成不同vlan间的通信。通过此次实验,参与者将会单臂路由的设定与应用,并理解vlan间通信的机制和实施途径。 二、实验架构 实验架构图示如下: PC1(vlan10)------------R1------------PC2(vlan20) 其中,PC1与PC2分别归属于vlan10和vlan20,R1作为单臂路由设备。 三、实验环节 1.绘制相应的架构图。 2.对交换机进行命名,按照编号形式命名为R1-姓名缩写。 3.详细的地址信息如下所示: PC1:IP地址为192.168.10.1/24,网关地址为192.168.10.254;归属vlan10 PC2:IP地址为192.168.20.1/24,网关地址为192.168.20.254;归属vlan20 4.依据提供的信息设定交换机和PC机,将拓扑图中的PC分配到对应的vlan中。 5.借助单臂路由促成不同vlan间的通信。要求,所有主机PC1与PC2能够互相发送ping请求。 四、实验流程 1.依照内容绘制网络架构图。 2.为PC1和PC2设定IP地址和网关。 3.配置交换机的vlan信息,明确哪些端口设置为access端口,哪些端口设置为trunk端口,依照配置方法实施即可。 4.交换机配置完成后,进行路由器设定。在单臂路由架构的路由器配置过程中,借助子接口,启用子接口配置ip地址时需注意,不可遗漏使用dotlq termination...

阿佛洛狄忒.prt_UG四五轴CNC编程练习图档.rar

阿佛洛狄忒.prt_UG四五轴CNC编程练习图档.rar

人脸识别使用主动形状模型 (ASM) 进行人脸检测(Matlab实现)

内容概要:本文详细介绍了基于主动形状模型(ASM)进行人脸检测的技术原理与Matlab实现方法。ASM通过构建面部关键点的统计形状模型,结合主成分分析(PCA)提取形状变化的主要模式,并利用迭代优化策略在新图像中搜索最佳匹配的人脸轮廓,从而实现对人脸特征点的精确定位。该方法能够有效应对光照、姿态和表情变化带来的挑战,具有较强的鲁棒性和较高的检测精度。文中系统阐述了ASM的训练过程、匹配机制及参数调整策略,并通过实验验证了其在实际人脸图像上的检测效果。; 适合人群:具备一定图像处理、模式识别与计算机视觉基础知识,熟悉Matlab编程语言,从事人脸识别、生物特征识别、医图像分析等相关领域的科研人员、研究生及工程技术人员。; 使用场景及目标:①应用于人脸识别、人脸对齐、表情识别等任务的前期特征定位环节;②为三维人脸重建、人脸动画合成、医面部诊断等高级视觉应用提供可靠的几何基础;③帮助习者深入理解基于统计形变模型的图像分析方法,掌握从理论建模到算法实现的全过程。; 阅读建议:建议读者结合提供的Matlab代码逐模块实现并调试算法,重点关注形状模型的构建流程、特征点标注的一致性处理以及搜索过程中局部外观模型的构建与匹配机制,同时可通过调整PCA保留主成分数量、搜索窗口大小等参数,观察其对检测精度与效率的影响,以深化对算法内在机理的理解。

412.zip

当 CAD 缺失对应字体时,图纸文字会显示异常,出现乱码、问号。将下载好的字体文件复制到 AutoCAD 的 Fonts 文件夹中,即可恢复正常显示。

上一篇: 阿翔编程学-悟编程
下一篇: 阿翔编程学-Java杂文
java_xiang
博客等级 码龄19年 14粉丝 42原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值