mirror of https://gitee.com/makejava/EasyCode.git
利用匿名函数优化重复代码
This commit is contained in:
parent
61916b04a5
commit
78535a099e
|
@ -26,11 +26,11 @@ public class ProjectUtils {
|
||||||
* @return 当前项目对象
|
* @return 当前项目对象
|
||||||
*/
|
*/
|
||||||
public static Project getCurrProject() {
|
public static Project getCurrProject() {
|
||||||
|
|
||||||
ProjectManager projectManager = ProjectManager.getInstance();
|
ProjectManager projectManager = ProjectManager.getInstance();
|
||||||
Project[] openProjects = projectManager.getOpenProjects();
|
Project[] openProjects = projectManager.getOpenProjects();
|
||||||
if (openProjects.length == 0) {
|
if (openProjects.length == 0) {
|
||||||
return projectManager.getDefaultProject();//正常情况下不会发生
|
// 在未打开任何项目,进入到设置页面时会出现
|
||||||
|
return projectManager.getDefaultProject();
|
||||||
} else if (openProjects.length == 1) {
|
} else if (openProjects.length == 1) {
|
||||||
// 只存在一个打开的项目则使用打开的项目
|
// 只存在一个打开的项目则使用打开的项目
|
||||||
return openProjects[0];
|
return openProjects[0];
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package com.sjhy.plugin.tool;
|
package com.sjhy.plugin.tool;
|
||||||
|
|
||||||
|
import java.util.function.BiFunction;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加字符串工具类,为了兼容JB的各种产品,尽量不要用第三方工具包
|
* 添加字符串工具类,为了兼容JB的各种产品,尽量不要用第三方工具包
|
||||||
*
|
*
|
||||||
|
@ -7,7 +10,39 @@ package com.sjhy.plugin.tool;
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
* @since 2018/08/07 11:52
|
* @since 2018/08/07 11:52
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("WeakerAccess")
|
||||||
public class StringUtils {
|
public class StringUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首字母处理方法
|
||||||
|
*/
|
||||||
|
private static final BiFunction<String, Function<Integer, Integer>, String> FIRST_CHAR_HANDLER_FUN = (str, firstCharFun) -> {
|
||||||
|
int strLen;
|
||||||
|
if (str == null || (strLen = str.length()) == 0) {
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
final int firstCodepoint = str.codePointAt(0);
|
||||||
|
final int newCodePoint = firstCharFun.apply(firstCodepoint);
|
||||||
|
if (firstCodepoint == newCodePoint) {
|
||||||
|
// already capitalized
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
// cannot be longer than the char array
|
||||||
|
final int[] newCodePoints = new int[strLen];
|
||||||
|
int outOffset = 0;
|
||||||
|
// copy the first codepoint
|
||||||
|
newCodePoints[outOffset++] = newCodePoint;
|
||||||
|
for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
|
||||||
|
final int codepoint = str.codePointAt(inOffset);
|
||||||
|
// copy the remaining ones
|
||||||
|
newCodePoints[outOffset++] = codepoint;
|
||||||
|
inOffset += Character.charCount(codepoint);
|
||||||
|
}
|
||||||
|
return new String(newCodePoints, 0, outOffset);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是空字符串
|
* 判断是空字符串
|
||||||
*
|
*
|
||||||
|
@ -24,30 +59,7 @@ public class StringUtils {
|
||||||
* @return 首字母大写结果
|
* @return 首字母大写结果
|
||||||
*/
|
*/
|
||||||
public static String capitalize(final String str) {
|
public static String capitalize(final String str) {
|
||||||
int strLen;
|
return FIRST_CHAR_HANDLER_FUN.apply(str, Character::toTitleCase);
|
||||||
if (str == null || (strLen = str.length()) == 0) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int firstCodepoint = str.codePointAt(0);
|
|
||||||
final int newCodePoint = Character.toTitleCase(firstCodepoint);
|
|
||||||
if (firstCodepoint == newCodePoint) {
|
|
||||||
// already capitalized
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
// cannot be longer than the char array
|
|
||||||
final int newCodePoints[] = new int[strLen];
|
|
||||||
int outOffset = 0;
|
|
||||||
// copy the first codepoint
|
|
||||||
newCodePoints[outOffset++] = newCodePoint;
|
|
||||||
for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
|
|
||||||
final int codepoint = str.codePointAt(inOffset);
|
|
||||||
// copy the remaining ones
|
|
||||||
newCodePoints[outOffset++] = codepoint;
|
|
||||||
inOffset += Character.charCount(codepoint);
|
|
||||||
}
|
|
||||||
return new String(newCodePoints, 0, outOffset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -56,29 +68,6 @@ public class StringUtils {
|
||||||
* @return 首字母小写结果
|
* @return 首字母小写结果
|
||||||
*/
|
*/
|
||||||
public static String uncapitalize(final String str) {
|
public static String uncapitalize(final String str) {
|
||||||
int strLen;
|
return FIRST_CHAR_HANDLER_FUN.apply(str, Character::toLowerCase);
|
||||||
if (str == null || (strLen = str.length()) == 0) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int firstCodepoint = str.codePointAt(0);
|
|
||||||
final int newCodePoint = Character.toLowerCase(firstCodepoint);
|
|
||||||
if (firstCodepoint == newCodePoint) {
|
|
||||||
// already capitalized
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
// cannot be longer than the char array
|
|
||||||
final int newCodePoints[] = new int[strLen];
|
|
||||||
int outOffset = 0;
|
|
||||||
// copy the first codepoint
|
|
||||||
newCodePoints[outOffset++] = newCodePoint;
|
|
||||||
for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
|
|
||||||
final int codepoint = str.codePointAt(inOffset);
|
|
||||||
// copy the remaining ones
|
|
||||||
newCodePoints[outOffset++] = codepoint;
|
|
||||||
inOffset += Character.charCount(codepoint);
|
|
||||||
}
|
|
||||||
return new String(newCodePoints, 0, outOffset);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue