论坛首页 入门技术论坛

自己实现了一个较实用的Pojo(实体)基类

浏览 12152 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-04-25  
mccxj 写道
不支持这样用,这么用反射没什么好处

我也投个隐藏



投人家隐藏贴应该给个有说服力的理由先,光是一句“没什么好处”,实在是草率了。
0 请登录后投票
   发表时间:2009-04-25   最后修改:2009-04-25
这样的东西感觉没有什么价值,恕我草率!
因为很多东西原本就是这样用就可以了,非得画蛇添足啊,我还是看不出有什么优势啊,呵呵
我就是看看而已,当然还是支持楼主的实践精神
0 请登录后投票
   发表时间:2009-04-25   最后修改:2009-04-25
例如:
用List的contains的时候
用Map的containsKey/containsValue的时候
SortedMap...
SortedSet...
.
.
.
等等

在一个集合里动一下就基本上要用到equals或hashCode了,你自己应该要好好对比对比衡量衡量
0 请登录后投票
   发表时间:2009-04-27  
正好给新手反射的示例代码。
不过我一般单独重载ToString(),毕竟这个跟需求有关。
0 请登录后投票
   发表时间:2009-04-27  
碧海山城 写道
对于投隐藏贴的,不记名,怎么说也得给个理由吧,javaeye应该给这个功能

好吧 我投了隐藏贴
我来说说 刚看了几行就忍不住点了

注意重写的equals方法

1 对obj判定null了吗……
在equals方法里抛NullpointerException是不好的

2 说说其它几个方面吧
说到重写equals方法的几条规则
自反性 对称性 传递性 幂等性
都能满足吗……(真没细看 看到第一个方法没几行就冲动的点了)

当然 lz的探索精神还是很好的 值得鼓励 比我强多了 潜水多年从没发过这样自己思考的帖子
0 请登录后投票
   发表时间:2009-04-27  
来个循环引用的对象,ls的方法就死翘翘了。

^_^
0 请登录后投票
   发表时间:2009-04-27  
反射机制是把双刃剑,不好滥用,我宁可我的实体类是POJO
0 请登录后投票
   发表时间:2009-04-28  
这种代码意义确实不大,不过作为初学者练手的作品要求也不能太苛刻了。
0 请登录后投票
   发表时间:2009-04-28  
反射方面不说,就继承的用法上感觉就不对。一般来说是在is a的关系上才继承。而想要得到某功能而去继承,这样的做法不好。可以考虑用工具类的方式提供你的功能。例如你的功能,可以这样实现:
/**
 * 
 */
package com.humanmonth.flow;

import java.util.List;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 调试的打印工具类
 * 
 * @author presses
 * 
 */
public class PrintUtil {
	private static Log log = LogFactory.getLog(PrintUtil.class);

	/**
	 * 打印List集合,集合中装的是原型或它的包装类
	 */
	@SuppressWarnings("unchecked")
	public static void printRawList(List rawList, String... descripts) {
		if (descripts != null && descripts.length > 0) {
			for (String str : descripts) {
				log.info(str);
			}
		}
		if (null == rawList) {
			log.info("集合中没有元素");
			return;
		}
		for (Object obj : rawList) {
			PrintUtil.printObject(obj);
		}
	}

	@SuppressWarnings("unchecked")
	public static void printRawListWithNoReflection(List rawList, String... descripts) {
		if (descripts != null && descripts.length > 0) {
			for (String str : descripts) {
				log.info(str);
			}
		}
		if (null == rawList) {
			log.info("集合中没有元素");
			return;
		}
		for (Object obj : rawList) {
			log.info(obj);
		}
	}

	/**
	 * 反射打印对像
	 */
	public static void printObject(Object obj, String... descripts) {
		if (descripts.length == 1) {
			log.info(descripts[0]);
		}
		log.info(ToStringBuilder.reflectionToString(obj));
	}
}


补充一句,上面这工具类的log的用法不对。
0 请登录后投票
   发表时间:2009-04-28   最后修改:2009-04-28
JE上许多人太不厚道了。

看投新手帖的那么多。LZ至少做了些什么,而有些人只是点了点鼠标。
而有些人更可恶,先COPY,之后在点下鼠标---> 新手帖。


别拍我。我知道这年头说实话容易被拍!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics