package com.xxx.common.util;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.*; /**
* 测试某些非空数据使用
* @author xw
*/
public class MockUtil {
private static double curD = 100.1; private static float curF = 10000.2f; private static int curInt = 1; private static long curL = 1000; private static int curS = 1; private static String[] rs = new String[] { "A", "C", "D", "E", "F", "J", "H", "I", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "a", "c", "d", "e", "f", "j", "h", "i", "k", "l", "m", "n", "o", "p", "q",
"r", "s", "t", "u", "v", "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "f" }; private static String getFieldName(String methodName) {
String s = "set";
String ups = methodName.toLowerCase();
String key = null;
if (ups.indexOf(s) != -1) {
key = ups.substring(s.length());
}
return (key == null) ? null : key;
} public static <T> T getJavaBean(Class<T> c) { T object = null;
List<Method> allMethods = new ArrayList<Method>();
List<Field> allFields = new ArrayList<Field>();
try {
object = c.newInstance();
Method[] methods = c.getDeclaredMethods();
Field[] fields = c.getDeclaredFields();
allMethods.addAll(Arrays.asList(methods));
allFields.addAll(Arrays.asList(fields));
Class superClass = c.getSuperclass();
while (superClass != null) {
allMethods.addAll(Arrays.asList(superClass.getDeclaredMethods()));
allFields.addAll(Arrays.asList(superClass.getDeclaredFields()));
superClass = superClass.getSuperclass();
}
for (Method m : allMethods) {
if (m.getName().indexOf("set") != -1) {
String field = getFieldName(m.getName());
String type = "string";
for (Field f : allFields) {
if (f.getName().toLowerCase().equals(field)) {
type = f.getType().getSimpleName();
break;
}
}
m.invoke(object, new Object[] { getValue(type) });
}
} } catch (Exception e) {
// e.printStackTrace();
}
return object;
} public static String getRand(int size) {
Random random = new Random();
String rvs = "";
for (int i = 0; i < size; i++) {
int status = random.nextInt(size);
if (status < rs.length && status > 0) {
rvs += rs[status];
}
else {
rvs += "A";
} }
return rvs;
} private static Object getValue(String s) {
Object temp = null;
String st = s.toLowerCase();
Random random = new Random(10010);
if (st.equals("int") || st.equals("integer")) {
temp = curInt;
curInt++;
}
else if (st.equals("long")) {
temp = curL;
curL++;
}
else if (st.equals("string")) {
temp = curS + getRand(6);
curS++;
}
else if (st.equals("double")) {
temp = curD;
curD++;
}
else if (st.equals("float")) {
temp = curF;
curF++;
}
else if (st.equals("boolean")) {
temp = random.nextBoolean();
}
else if (st.equals("date")) {
temp = new Date();
}
return (temp == null) ? null : (temp);
}
}

  mock 数据使用工具

Mock数据使用的Util的更多相关文章

  1. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据

    § 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...

  2. vue-cli项目中怎么mock数据

    在vue项目中, mock数据可以使用 node 的 express模块搭建服务 1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data ...

  3. json-server mock数据

    前言: 项目开发中,影响项目进程的常常是由于在前后端数据交互的开发流程中停滞,前端完成静态页面的开发后,后端迟迟未给到接口.而现在,我们就可以通过根据后端接口字段,建立一个REST风格的API接口,进 ...

  4. vue-cli项目使用mock数据的方法(借助express)

    前言 现如今前后端分离开发越来越普遍,前端人员写好页面后可以自己模拟一些数据进行代码测试,这样就不必等后端接口,提高了我们开发效率.今天就来分析下前端常用的mock数据的方式是如何实现的. 主体 项目 ...

  5. Vue CLI 3.0脚手架如何在本地配置mock数据

    前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...

  6. vue admin mock数据

    搭建脚手架axios访问不到接口:mock数据的问题mock下的index.js设置了默认指向

  7. fiddler安装及mock数据

    1,fiddler安装,解决无法抓到https问题 可用本机的火狐浏览器测试,不行,就fiddler生成证书,拷到火狐里 在firefox中,选项->进入配置界面:高级-> 证书 -> ...

  8. 关于vue-cli创建项目(小白)(2)mock数据

    mock数据,好处,前后端分离,不用等后端的真实接口,就可以用axios(ek sju s 好像这么读,原谅本人总是根据读音写单词)请求数据了. 一,安装所需插件 根据不同需求选择安装环境,mockj ...

  9. nodejs构建mock数据

    Nodejs构建mock数据并通过rest api风格调用接口访问数据 如果我们只有json格式的数据文件,我们想通过访问url方式调用居然数据 确保电脑安装node环境 如果你没有安装好node环境 ...

随机推荐

  1. Android获取前台进程的方法

    概述 项目中很多场景交互非常依赖于客户端的前后景状态以及其他一些辅助信息上传,譬如当前新闻在前台(看到的是新闻界面)播放时,语音开启音乐应用,此时我们希望能看到音乐界面,并且音乐在播;而在导航应用在前 ...

  2. 11g OCM 考试感悟

    11g OCM 考试感悟 PrudentWoo 累,累.真的很累.考前每天全场景的刷两遍.三遍不觉得累.总感觉练习时间不够.考中尽管时间足够.可是压力很大.尤其看到一些和平时训练不一样题目的时候,那种 ...

  3. LoadRunner中调用SHA1算法加密字符串

    参考<SHA-1 hash for LoadRunner>: http://ptfrontline.wordpress.com/2010/03/02/sha-1-hash-for-load ...

  4. win7多重网络之默认网关问题

    如果有谁做硬件的在用MAC,跟我讲一声好用不好用...有常用软件清单最好.windows已经用的无力吐槽了. 机子上有两块网卡,一块有线一块无线,有线的连接内部网络,无线连接外部网络, 问题描述: 内 ...

  5. HDU 1073 Online Judge(字符串)

    Online Judge Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot ...

  6. Codeforces Round #177 (Div. 2) 题解

    [前言]咦?如今怎么流行打CF了?于是当一帮大爷在执着的打div 1的时候,我偷偷的在刷div 2.至于怎么决定场次嘛.一般我报一个数字A,随便再拉一个人选一个数字B.然后開始做第A^B场.假设认为机 ...

  7. Pthreads并行编程之spin lock与mutex性能对比分析(转)

    POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API.线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用 ...

  8. Android五天乐(第一天)开发环境的部署,开发流程与调试

    由于项目要求參与无线端开发,本着技多不压身的指导精神,决定依旧从web转攻client! 由于之前自己玩过两个月android(实际上仅仅是做了两个有失水准的demo级app),本来以为这次再来学习将 ...

  9. Smart Client技术简要总结

    摘要:Smart Client简称智能客户端,是Microsoft推出的一种将B/S(瘦客户端)和C/S(胖客户端)结合在一起的一种技术.Smart Client结合了B/S和C/S的优势,具有新的特 ...

  10. memcache概念浅谈及名称混乱之区分

    关于memcache这个现在应用广泛的组件,大大提高的网站的响应速度,也方便了程序开发缓存的应用.但是目前针对memcache,网上的资料 大同小异,尤其基于LAMP的网站居多,php/pcel又有两 ...