首页 技术 正文
技术 2022年11月23日
0 收藏 617 点赞 2,927 浏览 4470 个字

1、配置类

package com.da.tool.util.configuration.reflect;/**
*/
public class JobInfo { private String jobName; private String jobId; public String getJobName() {
return jobName;
} public void setJobName(String jobName) {
this.jobName = jobName;
} public String getJobId() {
return jobId;
} public void setJobId(String jobId) {
this.jobId = jobId;
}
}package com.da.tool.util.configuration.reflect;/**
*/
public class TimedJob extends JobInfo { private String startTime; private String stopTime; public String getStartTime() {
return startTime;
} public void setStartTime(String startTime) {
this.startTime = startTime;
} public String getStopTime() {
return stopTime;
} public void setStopTime(String stopTime) {
this.stopTime = stopTime;
}
}

2、反射类

package com.da.tool.util.configuration.reflect;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.Properties;
import java.util.Set;/**
*/
public class Reflect { public static void main(String[] args) { Properties prop = new Properties();
prop.setProperty("jobName", "timingJob");
prop.setProperty("jobId", "");
prop.setProperty("startTime", String.valueOf(new Date().getTime()));
prop.setProperty("stopTime", String.valueOf(new Date().getTime() + * * * )); JobInfo jobInfo = (JobInfo) setTarget(prop,new TimedJob()); TimedJob timedJob=(TimedJob) jobInfo; System.out.println("jobName = " + timedJob.getJobName());
System.out.println("jobId = " + timedJob.getJobId());
System.out.println("startTime = " + timedJob.getStartTime());
System.out.println("stopTime = " + timedJob.getStopTime()); } /**
* 给实例instance的属性赋值
*
* @param prop
* @param instance
* @return
*/
public static Object setTarget(Properties prop, Object instance) { Set<Object> keys = prop.keySet(); for (Object key : keys) { String name = String.valueOf(key); String value = prop.getProperty(String.valueOf(key)); try {
Method method=instance.getClass().getMethod("set" + upperFirstChar(name), String.class);
method.invoke(instance,value);
} catch (NoSuchMethodException e) {
//set方法不存在
e.printStackTrace();
} catch (InvocationTargetException e) {
//
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}}
return instance;
} /**
* 将字符串的首字母大写
*
* @param string
* @return
*/
public static String upperFirstChar(String string) {
return string.substring(, ).toUpperCase() + string.substring();
}
}
jobName = timingJob
jobId =
startTime =
stopTime =

2、对象赋值(clone)

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
<groovy.version>2.1.6</groovy.version>
<slf4j.version>1.7.5</slf4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
package com.da.tool.util.configuration.reflect;/**
*/
public class JobInfo implements Cloneable{ private String jobName; private String jobId; public String getJobName() {
return jobName;
} public void setJobName(String jobName) {
this.jobName = jobName;
} public String getJobId() {
return jobId;
} public void setJobId(String jobId) {
this.jobId = jobId;
} @Override
public Object clone() {
JobInfo ic = null;
try{
ic = (JobInfo)super.clone();
}catch(CloneNotSupportedException e) {
e.printStackTrace();
}
return ic;
}
}

测试类

package com.da.tool.util.configuration.clone;import com.da.tool.util.configuration.reflect.TimedJob;
import org.apache.commons.lang.ObjectUtils;/**
*/
public class CloneInstance { public static void main(String[] args) { TimedJob timedJob=new TimedJob();
timedJob.setJobName("jobname");
timedJob.setJobId("");
timedJob.setStartTime("");
timedJob.setStopTime(""); TimedJob cloneTimedJob1= (TimedJob)ObjectUtils.clone(timedJob);
TimedJob cloneTimedJob2= (TimedJob)ObjectUtils.clone(timedJob); System.out.println("jobName = " + cloneTimedJob1.getJobName());
System.out.println("jobId = " + cloneTimedJob1.getJobId());
System.out.println("startTime = " + cloneTimedJob1.getStartTime());
System.out.println("stopTime = " + cloneTimedJob1.getStopTime()); System.out.println("jobName = " + cloneTimedJob1.getJobName());
System.out.println("jobId = " + cloneTimedJob1.getJobId());
System.out.println("startTime = " + cloneTimedJob1.getStartTime());
System.out.println("stopTime = " + cloneTimedJob1.getStopTime()); }
}

测试输出

jobName = jobname
jobId = 1
startTime = 123
stopTime = 789
jobName = jobname
jobId = 1
startTime = 123
stopTime = 789

上一篇: Python学习笔记003
下一篇: Day1-A-POJ-3295
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,991
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,506
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844