黑马程序员_基础加强(4) 内省 & javaBean

本文介绍了JavaBean的基本概念及其用途,并详细讲解了如何使用JavaBeans API(内省)及BeanUtils工具包来操作JavaBean的属性。
-------  android培训java培训、期待与您交流! ----------

一.javaBean用法

主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则

 用  途:如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object,简称VO)。这些信息在类中用私有字段来存储,如果读取或设置这些字段的值,则需要通过一些相应的方法来访问。

 特  点:JavaBean的属性是根据其中的setter和getter方法来确定的,而不是根据其中的成员变量。去掉set和get前缀,剩余部分就是属性名

JDK提供的对JavaBean进行操作的API,就被称为内省,avaAPI文档中的java.beans包和java.beans.beancontext

eg:

                public static void setProperty(Object pt1, String propertyName,
			Object value) throws IntrospectionException,
			IllegalAccessException, InvocationTargetException {
		PropertyDescriptor dp1 = new PropertyDescriptor(propertyName,pt1.getClass());
		Method methodSetX = dp1.getWriteMethod();
		methodSetX.invoke(pt1,value);
	}
eg:

	public static Object getProperty(Object pt1, String propertyName)
			throws IntrospectionException, IllegalAccessException,
			InvocationTargetException {
		PropertyDescriptor dp = new PropertyDescriptor(propertyName,pt1.getClass());
		Method methodGetX = dp.getReadMethod();		
		Object retVal = methodGetX.invoke(pt1);
		return retVal;
	}
eg;
                ReflectPoint pt1 = new ReflectPoint(1,1);
		String propertyName = "x";		
		Object retVal = getProperty(pt1, propertyName);
		System.out.println("getX:"+retVal);
		Object value = 7;
		
		setProperty(pt1, propertyName, value);		
		System.out.println("setX:"+pt1.getX());	

用java.beans包中的PropertyDescriptor类操作javaBean

eg:

用BeanInfo类和IntroSpector类操作javaBean

eg:

	public static Object getProperty(Object pt1, String propertyName)
			throws IntrospectionException, IllegalAccessException,
			InvocationTargetException {
		BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass());
		PropertyDescriptor[] dps = beanInfo.getPropertyDescriptors();
		Object retVal = null;		
		for(PropertyDescriptor dp:dps)
		{
			if(dp.getName().equals(propertyName)){
				retVal = dp.getReadMethod().invoke(pt1);				
				break;
			}			
		}		
		return retVal;

二.beanUtils工具包

eg:

ReflectPoint pt1 = new ReflectPoint(1,1);		
BeanUtils.setProperty(pt1, "x", 25);	
		System.out.println(BeanUtils.getProperty(pt1, "x").getClass().getName());		
		//BeanUtils可以实现属性链操作
		BeanUtils.setProperty(pt1, "date.time", "111");//time不一定在类中存在,只是说明date有getTime和setTime方法。
		System.out.println(BeanUtils.getProperty(pt1, "date.time"));
        	PropertyUtils.setProperty(pt1, "x", 160);
		System.out.println(PropertyUtils.getProperty(pt1, "x").getClass().getName());

BeanUtils:以字符串(String)的形式对JavaBean 的属性进行操作,getProperty方法得到的属性值是以字符串形式返回的(网络开发时,获取的用户数据类型都是String)。

PropertyUtils:以属性本身的类型最JavaBean的属性进行操作,getProperty()方法得到的属性值是以属性本来的类型返回的。



------- android培训java培训、期待与您交流! ----------
内容概要:本文提出了一种计及并网波动约束和储能荷电状态(SOC)的混合储能功率协调控制方法,并提供了完整的Matlab代码实现。该方法针对新能源并网系统中存在的功率波动问题,充分发挥超级电容器动态响应快与电池能量密度高的互补优势,通过设计合理的协调控制策略实现两者的功率动态分配。控制算法综合考虑了电网对并网功率波动的安全限值要求以及储能单元荷电状态的实时变化,构建了以平抑功率波动、均衡储能SOC、延长系统寿命为核心的多目标优化机制。文中详细阐述了混合储能系统的数学建模过程、功率分配逻辑设计、控制策略实现流程及仿真验证方案,通过对比实验验证了所提方法在降低并网功率波动幅度、维持储能系统能量平衡、提升电能质量和系统运行稳定性方面的优越性能。; 适合人群:具备一定电力系统分析、新能源并网技术或储能控制系统基础知识的研究生、科研人员及从事相关领域工程开发的技术人员。; 使用场景及目标:①应用于高比例可再生能源接入的微电网或配电网中,实现并网功率的平滑控制;②用于电池-超级电容等混合储能系统的能量管理与优化控制研究;③作为Matlab仿真教学案例或科研复现资料,帮助深入理解储能协调控制策略的设计原理与实现细节。; 阅读建议:读者应结合所提供的Matlab代码进行仿真实践,重点剖析低通滤波与高频补偿相结合的功率分配机制及SOC反馈调节环节的实现逻辑,建议在掌握基本控制理论的基础上,调整参数设置或拓展系统模型以适应不同的应用场景与研究需求。
内容概要:本文研究了构网型GFM-VSG与跟网型GFL-PQ逆变器混合并联并网的仿真系统,重点探讨了在Simulink环境下构建该系统的模型与控制策略。文中深入分析了构网型(Grid-Forming, GFM)采用虚拟同步发电机(VSG)控制和跟网型(Grid-Following, GFL)采用PQ控制的两类逆变器在并网运行中的协同机制与动态交互特性。通过建立高精度的仿真模型,系统研究了其在稳态运行、电网电压不平衡、频率波动及负载突变等动态工况下的响应性能。研究聚焦于提升混合系统在复杂电网环境中的稳定性、电能质量与功率精确分配能力,深入剖析了GFM与GFL逆变器之间的电压、频率支撑与功率振荡抑制等关键问题,旨在为高比例新能源接入背景下多类型变流器并网系统的稳定运行与优化设计提供坚实的理论依据和技术支持。; 适合人群:具备电力电子、自动控制或电气工程相关背景,熟悉Simulink/Matlab仿真工具,从事新能源并网、微电网控制、逆变器控制策略研究的研发人员及研究生。; 使用场景及目标:① 研究GFM与GFL逆变器在混合并联系统中的协同控制逻辑与稳定性机理;② 分析不同控制策略下系统在弱电网、不平衡电网等非理想条件下的动态响应、功率振荡及频率支撑能力;③ 为实际工程中多类型逆变器并网系统的建模、仿真验证与控制策略优化提供参考方案。; 阅读建议:建议结合Simulink仿真模型同步阅读,重点关注控制架构设计、系统交互影响与仿真结果分析部分,深入理解GFM-VSG与GFL-PQ的接口逻辑、动态耦合机制,并可通过修改控制参数复现不同工况以加深对系统稳定边界的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值