package com.wzg.lore.util;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author 文正光
* @version 创建时间:Apr 12, 2011 1:30:35 PM 类说明 查询时给查询内容的关键字加上指定的颜色
*/
public class DecoratorSingleKeyword {
/**
* 给一个对象中的属性值中包含的一个关键字加上需要的颜色
*
* @param object
* @param keyword
* @param color
* @return
* @throws Exception
*/
public static Object handlerObject(Object object, String keyword,
String color) {
Class objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
Field field = null;
PropertyDescriptor pd = null;
if (keyword != null && keyword.trim().length() != 0) {
for (int i = 0; i < fields.length; i++) {
field = fields[i];
if (!field.getName().equals("serialVersionUID")) {
try {
pd = new PropertyDescriptor(field.getName(), objClass);
String s = pd.getReadMethod().invoke(object,
new Object[] {}).toString();// 得到getXXX的值
// 对属性中包含的关键字加上指定的颜色
s = s.replaceAll(keyword, "<font color=\"" + color
+ "\">" + keyword + "</font>");
ConvertDataType.invorkMethod(field, object, pd
.getWriteMethod(), s);// 调用set方法重新赋值
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
return object;
}
/**
* 给一个容器中的每个对象的属性值中包含的一个关键字加上指定的颜色
*
* @param collection
* @param keyword
* @param color
* @return
*/
public static List handlerList(List list, String keyword, String color) {
List resultList = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
resultList.add(handlerObject(object, keyword, color));
}
return resultList;
}
}
package com.wzg.lore.util;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author 文正光
* @version 创建时间:Apr 13, 2011 12:12:43 AM 类说明
*/
public class DecoratorMultipleKeywords {
/**
* 给一个对象中的属性值中包含的多个关键字加上需要的颜色
*
* @param object
* @param color
* @param keywords
* @return
*/
public static Object handlerObject(Object object, String color,
String... keywords) {
Class objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
Field field = null;
PropertyDescriptor pd = null;
for (String keyword : keywords) {
if (keyword != null && keyword.trim().length() != 0) {
for (int i = 0; i < fields.length; i++) {
field = fields[i];
if (!field.getName().equals("serialVersionUID")) {
try {
pd = new PropertyDescriptor(field.getName(),
objClass);
String s = pd.getReadMethod().invoke(object,
new Object[] {}).toString();// 得到getXXX的值
// 对属性中包含的关键字加上指定的颜色
s = s.replaceAll(keyword, "<font color=\"" + color
+ "\">" + keyword + "</font>");
ConvertDataType.invorkMethod(field, object, pd
.getWriteMethod(), s);// 调用set方法重新赋值
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
}
return object;
}
/**
* 给一个容器中的每个对象的属性值中包含的多个关键字加上指定的颜色
*
* @param list
* @param color
* @param keywords
* @return
*/
public static List handlerList(List list, String color, String... keywords) {
List resultList = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
resultList.add(handlerObject(object, color, keywords));
}
return resultList;
}
}
package com.wzg.lore.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.util.Date;
public class ConvertDataType {
/**
* 对Date类型转换
*
* @param args
* @return
*/
public static Date toDate(String args) {
Date result = null;
if (null == args || "".equals(args))
result = null;
else
try {
result = DateFormat.getInstance().parse(args);
} catch (Exception e) {
result = null;
}
return result;
}
/**
* 对Timestamp类型转换
*
* @param args
* @return
*/
public static Timestamp toTimestamp(String args) {
Timestamp result = null;
if (null == args || "".equals(args))
result = null;
else
try {
result = Timestamp.valueOf(args);
} catch (Exception e) {
result = null;
}
return result;
}
/**
* 对Long类型转换
*
* @param args
* @return
*/
public static Long toLong(String args) {
Long result = null;
if (null == args || "".equals(args))
result = new Long(0);
else
try {
result = Long.parseLong(args);
} catch (Exception e) {
result = new Long(0);
}
return result;
}
/**
* 对Double类型转换
*
* @param args
* @return
*/
public static Double toDouble(String args) {
Double result = null;
if (null == args || "".equals(args))
result = new Double(0);
else
try {
result = Double.parseDouble(args);
} catch (Exception e) {
result = new Double(0);
}
return result;
}
/**
* 对Float类型转换
*
* @param args
* @return
*/
public static Float toFloat(String args) {
Float result = null;
if (null == args || "".equals(args))
result = new Float(0);
else
try {
result = Float.parseFloat(args);
} catch (Exception e) {
result = new Float(0);
}
return result;
}
/**
* 对Integer类型转换
*
* @param args
* @return
*/
public static Integer toInteger(String args) {
Integer result = null;
if (null == args || "".equals(args))
result = 0;
else {
try {
result = Integer.parseInt(args);
} catch (Exception e) {
result = 0;
}
}
return result;
}
/**
* 对Short类型转换
*
* @param args
* @return
*/
public static Short toShort(String args) {
Short result = null;
if (null == args || "".equals(args))
result = 0;
else {
try {
result = Short.parseShort(args);
} catch (Exception e) {
result = 0;
}
}
return result;
}
/**
* 重写了对String类型的转换
*
* @param args
* @return
*/
public static String toString(String args) {
String result = null;
if (null == args || "".equals(args))
result = "";
else
result = args.toString();
return result;
}
/**
* 根据字段的数据类型执行相应的set方法
*
* @param field
* @param object
* @param method
* @param value
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void invorkMethod(Field field, Object object, Method method,
String value) throws IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
if (field.getType() == String.class) { // 处理当为String类型情况
method.invoke(object, new Object[] { toString(value) });
} else if (field.getType() == Integer.class) {// 处理当为Integer类型情况
method.invoke(object, new Object[] { toInteger(value) });
} else if (field.getType() == Float.class) {// 处理当为Float类型情况
method.invoke(object, new Object[] { toFloat(value) });
} else if (field.getType() == Double.class) {// 处理当为Double类型情况
method.invoke(object, new Object[] { toDouble(value) });
} else if (field.getType() == Long.class) {// 处理当为Long类型情况
method.invoke(object, new Object[] { toLong(value) });
} else if (field.getType() == int.class) {// 处理当为int类型情况
method.invoke(object, new Object[] { toInteger(value) });
} else if (field.getType() == float.class) {// 处理当为float类型情况
method.invoke(object, new Object[] { toFloat(value) });
} else if (field.getType() == double.class) {// 处理当为double类型情况
method.invoke(object, new Object[] { toDouble(value) });
} else if (field.getType() == Date.class) {// 处理当为Date类型情况
method.invoke(object, new Object[] { toTimestamp(value) });
} else if (field.getType() == short.class) {// 处理当为Short类型情况
method.invoke(object, new Object[] { toShort(value) });
} else if (field.getType() == Timestamp.class) {// 处理当为Timestamp类型情况
method.invoke(object, new Object[] { toTimestamp(value) });
}
}
}
相关推荐
关键字高亮主要是通过识别代码中的特定词汇,如变量名、函数名、保留字等,并赋予它们不同的颜色或者样式。这通常需要一个关键字列表,包含所有需要高亮的词汇。在获取到代码文本后,遍历每一行,使用正则表达式或者...
我想在页面里把想要的关键词加亮凸出(用颜色区分出来)显示,这样让客户一眼能看到重的东西,然后在加亮的关键词上可以加上超连接.请问高手们怎么实现宋的功能.就像搜索引擎的那种..搜索关键词的时候就显示红色的.
众里寻她千百度也没结果,现在应该差不多了,终于花了2、3天时间,给memo控件与listbox控件加上了背景图片,并自绘了他们的滚动条、光标、所选内容,同时,在memo中输入c++语言关键字,如int,char等,会自动变颜色。...
在这个版本中,我们创建了一个`RegExp`对象,设置了忽略大小写(`IgnoreCase=True`)和全局匹配(`Global=True`),然后定义了模式`Pattern`为要查找的关键字,并用`Replace`方法进行替换,将匹配到的部分用HTML标签包裹...
3、提供了对所有数据库包括Oracle、Sybase、DB2、Informix、MySql、MS SQL SERVER、Access、FoxPro的SQL语句进行词法分析,对关键字、函数等显示以不同的颜色,使用户更方便地发现输入SQL语句的错误,同时...
在参与者的名字中可以使用非字母符号,甚至可以用引号将名字括起来,并使用"as"关键字为参与者定义别名。这在参与者名字非常长或包含非标准字符时特别有用。 参与者可以给自己发消息,可以在消息文本中使用"\n"来...
在关键字前加上双引号,可以进行精确匹配搜索。 **8,进阶搜索** **8.1,对搜索的网站进行限制** 使用“site:域名”可以限制搜索范围在特定网站内。 **8.2,查询某一类文件(往往带有同一扩展名)** “filetype:...
如果需要声明参与者,PlantUML提供了多种关键字供用户选择,例如actor、boundary、control、entity、database等,通过这些关键字可以清晰地定义参与者的身份和顺序。此外,用户还可以通过“as”关键字给参与者指定...
在箭头后加上“o”可以用来表示某种特殊类型的箭头。同时,也可以通过使用RGB值或颜色名来改变箭头的颜色。 4. 消息编号:可以使用autonumber关键字自动给消息编号,以清晰地标示消息的传递顺序。 5. 使用引号定义...
- **精确匹配**:使用引号(" ")将查询词括起来,可以实现精确匹配搜索。 2. **初阶搜索技巧** - **多关键词查询**:如果希望搜索结果同时包含两个或更多的关键词,直接输入这些词即可。 - **排除关键词**:...
在箭头的样式中,还可以指定特定的颜色,语法上使用RGB值或颜色名来修改actor或参与者的背景色,或者直接在箭头后面加上颜色代码。例如,使用"Bob-[#red]>Alice:hello"表示Bob发给Alice的消息为红色,或者使用"Alice...
首先,将当前鼠标屏幕坐标转换为世界坐标,然后加上之前计算的偏移量,得到物体的新位置。最后,通过 `transform.position = curPosition;` 更新物体的位置。`yield` 关键字在这里用于暂停脚本的执行,让其他帧的...
使用 typedef 声明类型时,我们通常在已有的类型名称前加上 typedef 关键字以及新的类型名称。 在C++中,除了用户自定义类型(UDT)外,还存在其他的基本类型,如整型(int)、字符型(char)、浮点型(float、...
如果产品介绍包含该关键字,会自动加上设置的链接 16)新闻介绍关键字内链功能:后台可以设置关键字和对应的链接 如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的...
如果产品介绍包含该关键字,会自动加上设置的链接 16)新闻介绍关键字内链功能:后台可以设置关键字和对应的链接 如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的...
包括Web服务器控件、列表框属性、互联网概念、计算机辅助测试、Servlet编程、关系数据库操作、JavaScript函数、Access数据库设计、RGB颜色模型、Visual FoxPro表达式、数据库索引、并发操作问题、交叉表查询、Java多...
如果产品介绍包含该关键字,会自动加上设置的链接 16)新闻介绍关键字内链功能:后台可以设置关键字和对应的链接 如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的...
在CSS中有两个特殊值可以赋给任意属性,用于控制层叠:inherit和initial。...通常我们会给网页的所有链接加上一个字体颜色(如果不加的话,就会以用户代理样式为准)。这个颜色也会作用于页脚的“Term
在定义抽象类时,需要在class关键字前加上abstract关键字。 ```java abstract class AbstractClass { // 抽象类定义 } ``` 抽象类中可以包含抽象方法,抽象方法没有具体实现,仅声明了方法签名。声明抽象方法时,...