import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
/**
* @author tl
* @version [版本号, 2010-11-4]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class JBeanClass
{
// 所支持的类型
private static List<String> supportType = new ArrayList<String>();
private static final int FIX_NUMBER2 = 2;
private static final int FIX_NUMBER3 = 3;
private static final int FIX_NUMBER4 = 4;
static
{
supportType.add("byte");
supportType.add("java.lang.Byte");
supportType.add("short");
supportType.add("java.lang.Short");
supportType.add("int");
supportType.add("java.lang.Integer");
supportType.add("long");
supportType.add("java.lang.Long");
supportType.add("java.lang.BigInteger");
supportType.add("float");
supportType.add("java.lang.Float");
supportType.add("double");
supportType.add("java.lang.Double");
supportType.add("char");
supportType.add("boolean");
supportType.add("java.lang.Boolean");
supportType.add("java.lang.String");
supportType.add("java.lang.Character");
}
/**
* 添加方法说明
*/
public JBeanClass()
{
}
/**
* 根据对象获取对象所有属性
* @param entityName
* @return
* @throws Exception
*/
public static Field[] getProperts(Object entityName) throws Exception
{
Field field[] = entityName.getClass().getDeclaredFields();
StringBuffer sb = new StringBuffer();
for (Field f : field)
{
sb.append(f.getName()).append(" : ").append(getGetterMethodInvokeValue(entityName, f.getName())).append("\n");
}
Log.getLogger().info("getPropertyString : " + sb.toString());
return field;
}
/**
* 获取getter方法的执行结果
* @param entity 方法所属的实体
* @param methodName 要执行的方法名
* @return 执行结果
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static Object getGetterMethodInvokeValue(Object entity, String methodName)
{
methodName = "get" + CommonTools.createFirstCharToUpperCase(methodName);
return getMethodInvokeValue(entity, methodName, null, null);
}
/**
* 获取方法的执行结果
* @param entity 方法所属的实体
* @param methodName 要执行的方法名
* @return 执行结果
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static Object getMethodInvokeValue(Object entity, String methodName, Class[] paramType, Object[] paramValue)
{
try
{
Class c = entity.getClass();
Method method = c.getMethod(methodName, paramType);
return method.invoke(entity, paramValue);
}
catch (Exception e)
{
Log.getLogger().error("can't find method " + methodName + " in " + entity, e);
}
return null;
}
/**
* 从getter方法名称中获取属性的名称
* @param methodName 方法名称
* @return String 方法对应的属性名
*/
public static String getPropertyName(String methodName)
{
String propertyName = null;
// 截取方法名"get"字符串后的所有字符 将获取的字符串首字母小写作为返回的属性名称
if (methodName.length() > FIX_NUMBER3)
{
propertyName = methodName.substring(FIX_NUMBER3, FIX_NUMBER4).toLowerCase(Locale.ENGLISH) + methodName.substring(FIX_NUMBER4);
}
return propertyName;
}
/**
* 获取方法对象的返回值类型
* @param method 方法对象
* @return String 方法对象的返回值的类型
*/
public static String getMethodReturnType(Method method)
{
String type = null;
if (method != null && method.getReturnType() != null)
{
type = method.getReturnType().getName();
}
return type;
}
/**
* 获取Set方法对象的第一个参数的类型
* @param method 方法对象
* @return String 方法对象的第一个参数的类型
*/
public static String getSetterMethodFirstParameterType(Method method)
{
String type = null;
if (method != null && method.getParameterTypes().length >= 1)
{
type = method.getParameterTypes()[0].getName();
}
return type;
}
/**
* 设置对象指定名称的参数值
* @param entity 要操作的对象
* @param propertyName 属性名
* @param value 要设置的属性值
* @return Object 设置后的对象
* @throws java.lang.Exception Exception异常
*/
@SuppressWarnings("unchecked")
public static Object setPropertyValueFromString(Object entity, String propertyName, String value) throws Exception
{
// 检查参数的有效性
if ((null == entity) || (null == propertyName) || propertyName.equals("") || (null == value) || value.equals(""))
{
return entity;
}
propertyName = "set" + CommonTools.createFirstCharToUpperCase(propertyName);
Method method = getMethod(entity, propertyName);
if (null == method)
{
Log.getLogger().error("can't find method " + propertyName + " in " + entity, null);
}
String paramType = getSetterMethodFirstParameterType(method);
// 复杂度太高,拆分成二个函数
Object[] params = createParamsNumType(paramType, value);
if (null == params)
{
params = createParamsOther(paramType, value);
}
if (params != null)
{
method.invoke(entity, params);
}
else
{
Log.getLogger().error("setPropertyValueFromString parametertype(" + paramType + "," + value + ")not supported。", null);
}
return entity;
}
/**
* 根据方法名获取方法 如果有多个同名的方法,函数只会随机取一个返回
* @param obj 要获取方法所在的类
* @param methodName 方法的名字
* @return 对应的方法
*/
public static Method getMethod(Object obj, String methodName)
{
Method[] methods = obj.getClass().getMethods();
// 遍历所有的方法对象,获取所有的符合标准JAVA BEANS规范的setter方法对象集合
for (int i = 0; i < methods.length; i++)
{
if (methods[i].getName().equals(methodName))
{
return methods[i];
}
}
return null;
}
/**
* 根据参数类型和参数值,将参数值转换成指定类型的数据返回
* @param paramType
* @param value
* @return
*/
private static Object[] createParamsNumType(String paramType, String value)
{
Object[] params = null;
if (paramType.equals("java.lang.Byte") || paramType.equals("byte"))
{
String ss = value;
if (ss.length() <= FIX_NUMBER2)
{
params = new Byte[1];
params[0] = Byte.valueOf(ss);
}
}
else if (paramType.equals("java.lang.Short") || paramType.equals("short"))
{
params = new Short[1];
params[0] = Short.valueOf(value);
}
else if (paramType.equals("java.lang.Integer") || paramType.equals("int"))
{
params = new Integer[1];
params[0] = Integer.valueOf(value);
}
else if (paramType.equals("java.lang.Long") || paramType.equals("long"))
{
params = new Long[1];
params[0] = Long.valueOf(value);
}
else if (paramType.equals("java.lang.Float") || paramType.equals("float"))
{
params = new Float[1];
params[0] = Float.valueOf(value);
}
else if (paramType.equals("java.lang.Double") || paramType.equals("double"))
{
params = new Double[1];
params[0] = Double.valueOf(value);
}
return params;
}
/**
* 根据参数类型和参数值,将参数值转换成指定类型的数据返回
* @param paramType
* @param value
* @return
*/
private static Object[] createParamsOther(String paramType, String value)
{
Object[] params = null;
if (paramType.equals("java.lang.String"))
{
params = new String[1];
params[0] = value;
}
else if (paramType.equals("java.lang.Character") || paramType.equals("char"))
{
String ss = value;
if (ss.length() == 1)
{
params = new Character[1];
params[0] = Character.valueOf(ss.charAt(0));
}
}
else if (paramType.equals("java.lang.Boolean") || paramType.equals("bool"))
{
params = new Boolean[1];
params[0] = Boolean.valueOf(value);
}
return params;
}
}
分享到:
相关推荐
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上
环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
HUAWEI iMaster NCE ²úÆ·²ÊÒ³_V100R019C00 01.pdf
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
功能说明: 设计开发了具有管理员;个人中心、用户管理、商品分类管理、品牌管理、商品信息管理、订单评价管理、留言板管理、系统管理、订单管理,用户;个人中心、订单评价管理、我的收藏管理、订单管理,前台首页;首页、商品信息、商品资讯、留言反馈、我的、跳转到后台、购物车等功能的家用电器销售网站。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上
1、资源内容地址:https://blog.csdn.net/abc6838/article/details/143838732 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
PartSegCore_compiled_backend-0.12.0a0-cp36-cp36m-win_amd64.whl.rar
功能说明: 系统主要包括个人中心,供应商管理,学院管理,公告信息管理,采购信息管理,采购信息管理,招标信息管理,投标信息管理,中标通知管理等功能模块。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上
redis7.4镜像docker包
中国分省分产业碳排放数据(绿色系列之一).zip
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。
基于Scrapy+Elasticsearch+Django搭建的分布式电影搜索.zip
汉语言文学 4.pdf
功能说明: 使用交通事故档案管理系统分别为管理员和用户两个权限子模块。 管理员所能使用的功能主要有个人中心、用户管理、部门信息管理、警察信息管理、事故类型管理、事故信息管理、档案类型管理、档案信息管理、申诉信息管理等。 用户可以实现个人中心、警察信息管理、事故信息管理、申诉信息管理等。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值