- 浏览: 1623684 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
TypeUtil
它的typeToString(String scope, Object obj)方法,采用java的reflect机制,可以打印出任何对象的内容.
这对调试程序非常有用.
使用方法:
如果你有一个对象(比如testClassObject),想打印它的内容,可用如下方法:
System.out.println(TypeUtil.typeToString("yourClassObjectName",testClassObject));
这个方法,对调试那些对容器依赖的ejb程序很有用,特此备份.
以下为TypeUtil源程序:
java 代码
- /**
- * The TypeUtil class static methods for inspecting complex java types.
- * The typeToString() method is used to dump the contents of a passed object
- * of any type (or collection) to a String. This can be very useful for debugging code that
- * manipulates complex structures.
- *
- *
- * @version $Revision : 1.2.6.4 $
- */
- import java.util.*;
- import java.lang.reflect.*;
- public class TypeUtil {
- /**
- * Returns a string holding the contents
- * of the passed object,
- * @param scope String
- * @param parentObject Object
- * @param visitedObjs List
- * @return String
- */
- private static String complexTypeToString(String scope, Object parentObject,List visitedObjs) {
- StringBuffer buffer = new StringBuffer("");
- try {
- //
- // Ok, now we need to reflect into the object and add its child nodes...
- //
- Class cl = parentObject.getClass();
- while ( cl != null ) {
- processFields(cl.getDeclaredFields(),
- scope,
- parentObject,
- buffer,
- visitedObjs );
- cl = cl.getSuperclass();
- }
- } catch (IllegalAccessException iae) {
- buffer.append(iae.toString());
- }
- return (buffer.toString());
- }
- /**
- * Method processFields
- * @param fields Field[]
- * @param scope String
- * @param parentObject Object
- * @param buffer StringBuffer
- * @param visitedObjs List
- * @throws IllegalAccessException
- */
- private static void processFields( Field[] fields,
- String scope,
- Object parentObject,
- StringBuffer buffer,
- List visitedObjs ) throws IllegalAccessException {
- for (int i = 0; i < fields.length; i++) {
- //
- // Disregard certain fields for IDL structures
- //
- if (fields[i].getName().equals("__discriminator")
- || fields[i].getName().equals("__uninitialized")) {
- continue;
- }
- //
- // This allows us to see non-public fields. We might need to deal with some
- // SecurityManager issues here once it is outside of VAJ...
- //
- fields[i].setAccessible(true);
- if (Modifier.isStatic(fields[i].getModifiers())) {
- //
- // Ignore all static members. The classes that this dehydrator is
- // meant to handle are simple data objects, so static members have no
- // bearing....
- //
- } else {
- buffer.append(
- typeToString(scope + "." + fields[i].getName(), fields[i].get(parentObject), visitedObjs));
- }
- }
- }
- /**
- * Method isCollectionType
- * @param obj Object
- * @return boolean
- */
- public static boolean isCollectionType(Object obj) {
- return( obj.getClass().isArray()||
- (obj instanceof Collection)||
- (obj instanceof Hashtable)||
- (obj instanceof HashMap)||
- (obj instanceof HashSet)||
- (obj instanceof List)||
- (obj instanceof AbstractMap ) );
- }
- /**
- * Method isComplexType
- * @param obj Object
- * @return boolean
- */
- public static boolean isComplexType(Object obj) {
- if ( obj instanceof Boolean ||
- obj instanceof Short ||
- obj instanceof Byte ||
- obj instanceof Integer ||
- obj instanceof Long ||
- obj instanceof Float ||
- obj instanceof Character ||
- obj instanceof Double ||
- obj instanceof String ) {
- return false;
- }
- else {
- Class objectClass = obj.getClass();
- if (objectClass == boolean.class
- || objectClass == Boolean.class
- || objectClass == short.class
- || objectClass == Short.class
- || objectClass == byte.class
- || objectClass == Byte.class
- || objectClass == int.class
- || objectClass == Integer.class
- || objectClass == long.class
- || objectClass == Long.class
- || objectClass == float.class
- || objectClass == Float.class
- || objectClass == char.class
- || objectClass == Character.class
- || objectClass == double.class
- || objectClass == Double.class
- || objectClass == String.class ) {
- return false;
- }
- else {
- return true;
- }
- }
- }
- /**
- * Returns a string holding the contents
- * of the passed object,
- * @param scope String
- * @param obj Object
- * @param visitedObjs List
- * @return String
- */
- private static String collectionTypeToString(String scope, Object obj, List visitedObjs) {
- StringBuffer buffer = new StringBuffer("");
- if (obj.getClass().isArray()) {
- if (Array.getLength(obj) > 0) {
- for (int j = 0; j < Array.getLength(obj); j++) {
- Object x = Array.get(obj, j);
- buffer.append(typeToString(scope + "[" + j + "]", x, visitedObjs));
- }
- } else {
- buffer.append(scope + "[]: empty\n");
- }
- } else {
- boolean isCollection = (obj instanceof Collection);
- boolean isHashTable = (obj instanceof Hashtable);
- boolean isHashMap = (obj instanceof HashMap);
- boolean isHashSet = (obj instanceof HashSet);
- boolean isAbstractMap = (obj instanceof AbstractMap);
- boolean isMap = isAbstractMap || isHashMap || isHashTable;
- if (isMap) {
- Set keySet = ((Map) obj).keySet();
- Iterator iterator = keySet.iterator();
- int size = keySet.size();
- if (size > 0) {
- for (int j = 0; iterator.hasNext(); j++) {
- Object key = iterator.next();
- Object x = ((Map) obj).get(key);
- buffer.append(typeToString(scope + "[\"" + key + "\"]", x, visitedObjs));
- }
- } else {
- buffer.append(scope + "[]: empty\n");
- }
- } else
- if (/*isHashTable || */
- isCollection || isHashSet /* || isHashMap */
- ) {
- Iterator iterator = null;
- int size = 0;
- if (obj != null) {
- if (isCollection) {
- iterator = ((Collection) obj).iterator();
- size = ((Collection) obj).size();
- } else
- if (isHashTable) {
- iterator = ((Hashtable) obj).values().iterator();
- size = ((Hashtable) obj).size();
- } else
- if (isHashSet) {
- iterator = ((HashSet) obj).iterator();
- size = ((HashSet) obj).size();
- } else
- if (isHashMap) {
- iterator = ((HashMap) obj).values().iterator();
- size = ((HashMap) obj).size();
- }
- if (size > 0) {
- for (int j = 0; iterator.hasNext(); j++) {
- Object x = iterator.next();
- buffer.append(typeToString(scope + "[" + j + "]", x, visitedObjs));
- }
- } else {
- buffer.append(scope + "[]: empty\n");
- }
- } else {
- //
- // theObject is null
- buffer.append(scope + "[]: null\n");
- }
- }
- }
- return (buffer.toString());
- }
- /**
- * Method typeToString
- * @param scope String
- * @param obj Object
- * @param visitedObjs List
- * @return String
- */
- private static String typeToString(String scope, Object obj, List visitedObjs) {
- if (obj == null) {
- return (scope + ": null\n");
- }
- else if (isCollectionType( obj ) ) {
- return collectionTypeToString( scope, obj, visitedObjs );
- }
- else if (isComplexType( obj ) ) {
- if( ! visitedObjs.contains(obj)) {
- visitedObjs.add(obj);
- return complexTypeToString( scope, obj, visitedObjs ) ;
- }
- else {
- return(scope + ": <already visited>\n" );
- }
- }
- else {
- return ( scope + ": " + obj.toString() + "\n");
- }
- }
- /**
- * The typeToString() method is used to dump the contents of a passed object
- * of any type (or collection) to a String. This can be very useful for debugging code that
- * manipulates complex structures.
- *
- * @param scope
- * @param obj
- *
- * @return String
- *
- */
- public static String typeToString(String scope, Object obj) {
- if (obj == null) {
- return (scope + ": null\n");
- }
- else if (isCollectionType( obj ) ) {
- return collectionTypeToString( scope, obj, new ArrayList());
- }
- else if (isComplexType( obj ) ) {
- return complexTypeToString( scope, obj, new ArrayList() ) ;
- }
- else {
- return ( scope + ": " + obj.toString() + "\n");
- }
- }
- }
发表评论
-
SpringBoot Fat Jar解压运行
2018-06-28 21:40 2288SpringBoot已经成为当前最流行的微服务 ... -
一句话实现五星评分显示
2018-06-05 08:31 1018Python: rate = 1 #rate 取值 ... -
来算google的可视化编程工具——Blockly,不仅仅是玩具
2017-10-16 21:34 33309Blockly - 来自Google的可 ... -
安卓动态分析工具 Inspeckage
2017-08-07 08:46 0工具介绍 一个基于Xposed 开发的应用动态分析工具 g ... -
Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息
2017-08-07 08:37 0一、猜想数据存放路径 微信现在是老少皆宜,大街小巷都在使用 ... -
破解微信数据库 并查询数据上传服务器
2017-08-07 08:29 0由于工作需求破解了微信的数据库 并获取想要的信息上传服 ... -
安卓黑科技之HOOK详解
2017-08-07 08:21 0本文带大家进入到安卓另一个世界 互联网攻防大战 Xpos ... -
安卓逆向之基于Xposed-ZjDroid脱壳
2017-08-07 08:18 0前言 之前介绍了普通常见的反编译模式 但对于使用了 360 ... -
十步以内完成精细web打印
2017-06-21 11:44 7668注意: 康虎云报表组 ... -
浏览器端精准打印或套打组件
2017-01-18 13:05 6732注意: 康虎云报表 ... -
疯狂软件对Oracle放弃Java EE的看法
2016-08-14 22:38 545来源:http://javaligang ... -
几个Java相关的思维导图
2016-03-17 13:07 994来源:http://blog.csdn.net/jackf ... -
jasperReport Applet 打印
2016-02-01 16:33 887Applet方式的原理是本地下载Applet以及Jas ... -
为Java说句公道话
2016-01-24 10:59 734为Java说句公道话 有些 ... -
Mybatis Generator配置详解(中文)_转
2015-12-17 16:44 940来自: http://www.jianshu.com/p/e ... -
一个提供大量数据模型的网站
2015-12-17 14:00 1014网站地址是:http://www.databaseansw ... -
采用ajp代理模式配置Apache+tomcat实现负载均衡(转)
2015-11-13 10:22 887这一种方法,配置简单,性能也高。附AJP介绍: AJP ... -
MyBatis配置文件修改侦测及重载的实现
2015-07-31 13:53 2354MyBatis配置文件修改侦测及重载的实现: /** ... -
Spring optional @PathVariable?
2015-07-09 13:13 933Q: Is it possible to somehow ... -
The forked VM terminated without saying properly goodbye. VM crash or System.exi
2015-07-07 18:22 4379The forked VM terminated witho ...
相关推荐
北京交通大学 901 软件工程 2020 年真题.pdf
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【2025最新Java面试宝典】 ElasticSearch面试题(31道含答案)
基于PySide6开发的Office文本批量替换工具,可对办公文档进行脱敏处理。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
标题SpringBoot在昆仑科技文献系统中的应用研究AI更换标题第1章引言介绍SpringBoot框架在昆仑科技文献系统中的研究背景、意义、现状以及论文的方法和创新点。1.1研究背景与意义分析SpringBoot框架在文献系统领域的应用价值。1.2国内外研究现状综述SpringBoot框架在文献系统中的应用情况和发展趋势。1.3论文方法与创新点阐述本文采用的研究方法和创新点。第2章SpringBoot框架概述详细介绍SpringBoot框架的基本概念、核心特性和优势。2.1SpringBoot简介概述SpringBoot的定义、发展历程和基本特点。2.2核心组件与工作原理解释SpringBoot的核心组件及其工作原理。2.3SpringBoot的优势分析SpringBoot框架相比其他框架的优势。第3章昆仑科技文献系统分析对昆仑科技文献系统进行详细的需求分析和功能设计。3.1系统需求分析明确昆仑科技文献系统的功能需求和性能需求。3.2系统功能设计根据需求分析结果,设计昆仑科技文献系统的功能模块。3.3数据库设计设计满足系统需求的数据库结构。第4章SpringBoot在昆仑科技文献系统
2024日本美妆市场洞察报告-大数跨境
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
app开发
内容概要:本文全面介绍了MySQL数据库系统的安装、配置、管理及优化。首先概述了MySQL的历史和发展,强调其开源、跨平台、高性能等特点。接下来详细讲解了在Windows和Linux平台上安装MySQL的具体步骤,包括下载安装包、配置服务和环境变量等。此外,还涵盖了MySQL的初始化配置,如设置root密码、创建数据库和调整配置文件。针对MySQL的安全性,讨论了用户权限管理、防火墙配置等方面。最后,探讨了性能优化的方法,包括调整性能参数、使用监控工具和优化查询等。 适合人群:数据库管理员、运维工程师、开发人员,尤其是那些希望深入了解MySQL安装、配置和优化的人群。 使用场景及目标:①帮助用户快速掌握MySQL的安装和配置流程;②指导用户进行有效的MySQL安全管理;③提供性能优化技巧,以提高数据库的响应速度和稳定性。 其他说明:本文不仅提供了理论知识,还附带了大量的实际操作示例,方便读者理解和实践。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
摘 要 I Abstract II 目 录 III 第一章 课题背景及研究内容 1 1.1 课题背景 1 1.2 开发目的和意义 1 1.3 论文研究内容 1 第二章 相关技术 3 2.1 B/S结构 3 2.2 MySQL数据库 3 第三章 系统分析 5 3.1可行性分析 5 3.1.1时间可行性 5 3.1.2 经济可行性 5 3.1.3 操作可行性 5 3.1.4 技术可行性 5 3.1.5 法律可行性 5 3.2系统流程分析 6 3.3系统功能需求分析 7 3.4 系统非功能需求分析 7 第四章 系统设计 9 4.1 总体功能 9 4.2 系统模块设计 9 4.3 数据库设计 10 4.3.1 数据库设计 10 4.3.2 数据库E-R 图 10 4.3.3 数据库表设计 11 第五章 系统实现 13 5.1 管理员功能模块的实现 13 5.1.1 用户列表 13 5.1.2 预算信息管理 13 5.1.3 预算类型管理 14 第六章 系统测试 15 6.1软件测试 15 6.2测试环境 16 6.3 测试用例 16 6.3.1 用户登录测试 16 6.4.2 添
uniapp基础框架,可直接使用
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
电商技术_WordPress_UniApp_积分商城_微信小_1742855265.zip
2024年中国房地产市场展望报告-第一太平戴维斯
docker 一个在springboot项目部署在docker中的实例.
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。