java程序100行

急求一个100行左右的java程序,有注释的最好了,越详细越好,告诉我这个程序是做什么的,跪求各位大神!... 急求一个100行左右的java程序,有注释的最好了,越详细越好,告诉我这个程序是做什么的,跪求各位大神! 展开
 我来答
o法克尔o
推荐于2016-02-23 · 超过19用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:32.4万
展开全部
package soyea.base.util;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;

import soyea.base.bean.physics.ChargeSite;

/**
* 反射类,获取对象属性值,设置对象属性值等操作
*/
public class ClassReflect {

/**
* 用于获取指定对象不确定属性名的值 反射机制
* @param object 实体对象
* @param str 属性名
* @return 属性值
* @throws Exception
*/
public static Object get(Object object,String str) throws Exception {
Field field = hasEqualsIgnoreCase(object.getClass(),str);
if(field != null){
Method m = object.getClass().getMethod("get"+getMethodName(str));
Object invoke = m.invoke(object);
if(invoke == null){
return null;
}else{
return invoke.toString();
}

}else{
return null;
}
}

/**
* 设置对象属性
* @param object
* @param str
* @return
* @throws Exception
*/
public static void set(Object object,String property,Object value) throws Exception {
Field field = hasEqualsIgnoreCase(object.getClass(),property) ;
if(field != null){
Method m = object.getClass().getDeclaredMethod("set"+getMethodName(property),field.getType());
if(value!=null){
m.invoke(object,value);
}
}
}

/**
* @param clz 类文件
* @param str 类中的属性名
* @return 属性在liest中的下标
* @throws Exception
*/
public static Field hasEqualsIgnoreCase(Class<?> clz,String str) throws Exception{
List<Field> fields = Arrays.asList(clz.getDeclaredFields());
for(int i=0;i<fields.size();i++){
Field x = fields.get(i);
if(str.equalsIgnoreCase(x.getName().toString())){
return x;
}
}
return null;
}

/**
* 大写第一个字母
* @param str 字段名
* @return
* @throws Exception
*/
public static String getMethodName(String str) throws Exception{
byte[] b = str.getBytes();
b[0]=(byte)((char)b[0]-'a'+'A');
return new String(b);
}
public static void resetObj(Object obj, String property)
throws Exception {
String gbk = Encoder.getByCode(obj, property);
if(gbk != null && gbk.trim().length()>0){
try {
ClassReflect.set(obj, property, gbk);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void resetAllObjPropertiesByCode(Object obj)
throws Exception {
Field[] fields = obj.getClass().getDeclaredFields();
for(int i=0;i<fields.length;i++){
Field f = fields[i];
String name = f.getName();
if("id".equals(name)){
continue;
}
resetObj(obj, name);
}
}
}
更多追问追答
追问
请问这是作什么的?
追答
反射的啊,可以设置或者获取实体对象的值,java reflect
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式