喷血求高手回答,这段代码是啥意思?

garysgarys 2009-10-24 12:56:42
protected <T> String getCountField(Class<T> clazz){
String out = "o";
try {
PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(clazz).getPropertyDescriptors();
for(PropertyDescriptor propertydesc : propertyDescriptors){
Method method = propertydesc.getReadMethod();
if(method!=null && method.isAnnotationPresent(EmbeddedId.class)){
PropertyDescriptor[] ps = Introspector.getBeanInfo(propertydesc.getPropertyType()).getPropertyDescriptors();
out = "o."+ propertydesc.getName()+ "." + (!ps[1].getName().equals("class")? ps[1].getName(): ps[0].getName());
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return out;
}
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wifewifewife 2009-11-05
  • 打赏
  • 举报
回复

protected <T> String getCountField(Class<T> clazz) {
String out = "o";
try {
//取得bean(clazz)类的信息,通过getPropertyDescriptors方法获取属性描述数组对象.
PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(clazz).getPropertyDescriptors();
//对bean(clazz)类的属性列表进行循环.从数组中取去一个个的属性对象进行操作——获取相应的读写方法,
// 然后调用相应的读写方法。这些是通过反射机制做到的.
for (PropertyDescriptor propertydesc : propertyDescriptors) {
//取得bean(clazz)属性的propertydesc这个方法的属性值.返回getXXX()方法.
// 另外还有:getWriteMethod()方法,他是取得setXXX()方法的.他们是一对的.
Method method = propertydesc.getReadMethod();
//属性,方法是否为空的判断.
if (method != null && method.isAnnotationPresent(EmbeddedId.class)) {
//Introspector的作用是抽取JavaBean中的属性与方法、事件等
PropertyDescriptor[] ps = Introspector.getBeanInfo(propertydesc.getPropertyType()).getPropertyDescriptors();
//输入EmbeddedId.class的get方法名
out = "o." + propertydesc.getName() + "." + (!ps[1].getName().equals("class") ? ps[1].getName() : ps[0].getName());
break;
}
}
} catch (Exception e) {
//异常抛出.
e.printStackTrace();
}
return out;
}
wifewifewife 2009-11-05
  • 打赏
  • 举报
回复
这就是一段java代码.只是少了一个EmbeddedId.java,如果把EmbeddedId.java加进来的话,可以运行的.
louisgarcia 2009-11-04
  • 打赏
  • 举报
回复
估计是C#
showjim 2009-10-27
  • 打赏
  • 举报
回复
protected<T> String getCountField(Class<T> clazz)
{
String out = "o";
try
{
PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(clazz).getPropertyDescriptors();
foreach (PropertyDescriptor propertydesc in propertyDescriptors)
{
Method method = propertydesc.getReadMethod();
if (method != null && method.isAnnotationPresent(EmbeddedId.class))
{
PropertyDescriptor[] ps = Introspector.getBeanInfo(propertydesc.getPropertyType()).getPropertyDescriptors();
out = "o." + propertydesc.getName() + "." + (!ps[1].getName().equals("class") ? ps[1].getName() : ps[0].getName());
break;
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return out;
}

不知道什么语言的代码,好像是获取某对象的某个属性的代码字符串形式,应该是用于解释型语言的
zhangbin4362 2009-10-26
  • 打赏
  • 举报
回复
这是什么语言的代码??
蛋蛋の忧伤 2009-10-24
  • 打赏
  • 举报
回复
高不懂 是不是玩花样

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧