积跬步

Just do IT Now.


  • Home

  • Tags

  • Categories

  • Archives

  • Search

动态生成代码

Posted on 2021-11-23 | In Java代码片段

摘要:通过代码生成一系列代码文件

Read more »

安卓题目

Posted on 2021-11-04 | In 678

知识点

网络基础

1. TCP三次握手

Read more »

第三方-DoraemonKit

Posted on 2021-11-04 | In Android

README-CN

Android接入指南

由于jcenter事件的影响,我们需要将DoKit For Android迁移到mavenCentral(),但是需要更改groupId.所以大家要注意一下,具体的更新信息如下:

Read more »

Java-编程优化

Posted on 2021-09-29 | In Java
  • [不使用 != null](#不使用 !=null)
  • 循环嵌套-外小内大
  • 提取与循环无关的表达式-放在循环外
  • 异常捕获-放在循环外
Read more »

枚举相关

Posted on 2021-09-26 | In Java代码片段

传入code找value值

第一种:name-value

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* driver-class-name
*/
public enum JdbcDriverTypeEnum {
/**
* mysql
*/
MYSQL("MYSQL","com.mysql.cj.jdbc.Driver");

private String name;

private String value;

JdbcDriverTypeEnum(String name, String value) {
this.name = name;
this.value = value;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

public static String getDriverType(String name) {
for (JdbcDriverTypeEnum type : JdbcDriverTypeEnum.values()) {
if (name.equals(type.getName())) {
return type.value;
}
}
return null;
}
}
Read more »

安卓-音视频

Posted on 2021-09-07 | In Android

Radiom

如果日志不显示
找到任务管理器的adb.exe和eclipse关闭它们
再重启eclipse

MediaPlayer
soundPool类、JetPlayer类、MediaPlayer类

Read more »

逻辑判断

Posted on 2021-09-01 | In Java代码片段
每天首次登录首次安装并激活(打开app)
Read more »

准备、Hr面试问题总结

Posted on 2021-08-13 | In 678

第一章程序员简历

程序员简历就该这样写

本篇文章除了教大家用Markdown如何写一份程序员专属的简历,后面还会给大家推荐一些不错的用来写Markdown简历的软件或者网站,以及如何优雅的将Markdown格式转变为PDF格式或者其他格式。

Read more »

简历编写

Posted on 2021-08-13 | In 678

优先简历具备的特点

对于程序员行业来说,一份优秀的简历,需要具备几个特点:

  1. 让招聘者看了很舒服,不会看了就想丢垃圾桶里。
  2. 让招聘者能很快看到自己想要看到的东西。
Read more »

口水话理解设计模式

Posted on 2021-08-03 | In 设计模式

口水话理解设计模式

01 工厂方法

追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。
消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

Read more »

安卓-对象属性值复制

Posted on 2021-07-20 | In Android代码片段

工具类-对象属性值复制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

/**
* 说明:对象属性值复制
*/
public class CopyPropertiesManager {

/**
* 利用反射实现对象之间属性复制
*
* @param from
* @param to
*/
public static void copyProperties(Object from, Object to) throws Exception {
copyPropertiesExclude(from, to, null);
}

/**
* 复制对象属性
*
* @param from
* @param to
* @param excludsArray 排除属性列表
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static void copyPropertiesExclude(Object from, Object to, String[] excludsArray) throws Exception {
List<String> excludesList = null;
if (excludsArray != null && excludsArray.length > 0) {
excludesList = Arrays.asList(excludsArray); //构造列表对象
}
Method[] fromMethods = from.getClass().getDeclaredMethods();
Method[] toMethods = to.getClass().getDeclaredMethods();
Method fromMethod = null, toMethod = null;
String fromMethodName = null, toMethodName = null;
for (int i = 0; i < fromMethods.length; i++) {
fromMethod = fromMethods[i];
fromMethodName = fromMethod.getName();
if (!fromMethodName.contains("get")) {
continue;
}
//排除列表检测
if (excludesList != null && excludesList.contains(fromMethodName.substring(3).toLowerCase())) {
continue;
}
toMethodName = "set" + fromMethodName.substring(3);
toMethod = findMethodByName(toMethods, toMethodName);
if (toMethod == null) {
continue;
}
Object value = fromMethod.invoke(from, new Object[0]);
if (value == null) {
continue;
}
//集合类判空处理
if (value instanceof Collection) {
Collection newValue = (Collection) value;
if (newValue.size() <= 0) {
continue;
}
}
toMethod.invoke(to, new Object[]{value});
}
}

/**
* 对象属性值复制,仅复制指定名称的属性值
*
* @param from
* @param to
* @param includsArray
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static void copyPropertiesInclude(Object from, Object to, String[] includsArray) throws Exception {
List<String> includesList = null;
if (includsArray != null && includsArray.length > 0) {
includesList = Arrays.asList(includsArray); //构造列表对象
} else {
return;
}
Method[] fromMethods = from.getClass().getDeclaredMethods();
Method[] toMethods = to.getClass().getDeclaredMethods();
Method fromMethod = null, toMethod = null;
String fromMethodName = null, toMethodName = null;
for (int i = 0; i < fromMethods.length; i++) {
fromMethod = fromMethods[i];
fromMethodName = fromMethod.getName();
if (!fromMethodName.contains("get")) {
continue;
}
//排除列表检测
String str = fromMethodName.substring(3);
if (!includesList.contains(str.substring(0, 1).toLowerCase() + str.substring(1))) {
continue;
}
toMethodName = "set" + fromMethodName.substring(3);
toMethod = findMethodByName(toMethods, toMethodName);
if (toMethod == null) {
continue;
}
Object value = fromMethod.invoke(from, new Object[0]);
if (value == null) {
continue;
}
//集合类判空处理
if (value instanceof Collection) {
Collection newValue = (Collection) value;
if (newValue.size() <= 0) {
continue;
}
}
toMethod.invoke(to, new Object[]{value});
}
}

/**
* 从方法数组中获取指定名称的方法
*
* @param methods
* @param name
* @return
*/
public static Method findMethodByName(Method[] methods, String name) {
for (int j = 0; j < methods.length; j++) {
if (methods[j].getName().equals(name)) {
return methods[j];
}
}
return null;
}


public static void main(String[] args) {
//使用案例:
//把loginBean.getData()类中的所有属性赋值给user类。
//注意:loginBean.getData()类和user类中的所有参数名称要一致。
User user = new User();
try {
CopyPropertiesManager.copyProperties(loginBean.getData(), user);
} catch (Exception e) {
e.printStackTrace();
}
}
}

注意:只能复制属性那一级别的。即,如果对象内部还有对象,这对象无法复制过去(报“java.lang.IllegalArgumentException: argument type mismatch”错误)

Read more »

Java-枚举

Posted on 2021-07-20 | In Java

枚举不带值

1
2
3
enum MobileCodeActionEnum {
MOBILE_LOGIN, THIRD_LOGIN_BIND, CHANGE_PASS
}

使用

Read more »
<1…8910…24>

285 posts
21 categories
44 tags
E-Mail CSDN
0%
© 2018 — 2025 阿炳
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4