常用封装工具类

编程入门 行业动态 更新时间:2024-10-25 04:26:53

<a href=https://www.elefans.com/category/jswz/34/1769776.html style=常用封装工具类"/>

常用封装工具类

文章目录

  • 前言
  • 一、保留指定小数位
  • 二、获取bean
  • 三、假分页计算
  • 四、星期计算
  • 五、经纬度计算距离
  • 六、分页序号计算


前言

一、保留指定小数位

import org.apachemons.lang3.StringUtils;
import java.math.BigDecimal;public class OffSetPointUtil {/*** 保留指定小数位数** @param value 原始double值* @param scale 小数位数* @return 保留指定小数位数后的字符串形式*/public static String round(double value, int scale) {if (scale < 0) {throw new IllegalArgumentException("小数位数不能为负数");}BigDecimal bd = BigDecimal.valueOf(value);bd = bd.setScale(scale, BigDecimal.ROUND_HALF_UP);if (StringUtils.indexOf(bd.toString(), ".0") != -1) {return bd.toString().substring(0, StringUtils.indexOf(bd.toString(), ".0"));}return bd.toString();}
}

二、获取bean

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;@Component
@Order(98)
public class SpringUtil implements ApplicationContextAware {private static Logger logger = LoggerFactory.getLogger(SpringUtil.class);private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {if (SpringUtil.applicationContext == null) {SpringUtil.applicationContext = applicationContext;}logger.info("ApplicationContext配置成功,applicationContext对象:" + SpringUtil.applicationContext);}public static ApplicationContext getApplicationContext() {return applicationContext;}public static Object getBean(String name) {return getApplicationContext().getBean(name);}public static <T> T getBean(Class<T> clazz) {return getApplicationContext().getBean(clazz);}public static <T> T getBean(String name, Class<T> clazz) {return getApplicationContext().getBean(name, clazz);}
}

三、假分页计算

包含一些自定义类,可根据项目具体封装结构修改

import com.gsafety.bg.gsdssmon.page.PageResult;
import org.springframework.data.domain.Pageable;import java.util.List;
public class PageStaticUtils<T> {/*** 后端计算分页** @param list list* @param page page* @return PageResult*/public PageResult<T> pageData(List<T> list, Pageable page) {int total = list.size();int pages = (total / page.getPageSize()) + (total % page.getPageSize() > 0 ? 1 : 0);int start = page.getPageSize() * page.getPageNumber();int end = Math.min((start + page.getPageSize()), total);PageResult<T> pageResult = new PageResult<T>();pageResult.setNowPage(page.getPageNumber() + 1);pageResult.setPages(pages);pageResult.setPageSize(page.getPageSize());pageResult.setTotal(total);pageResult.setList(list.subList(start, end));return pageResult;}
}

四、星期计算

import java.time.LocalDate;public class DayOfWeekUtil {public static String week(LocalDate day) {String[][] strArray = {{"MONDAY", "一"}, {"TUESDAY", "二"}, {"WEDNESDAY", "三"}, {"THURSDAY", "四"}, {"FRIDAY", "五"}, {"SATURDAY", "六"}, {"SUNDAY", "日"}};String k = String.valueOf(day.getDayOfWeek());//获取行数for (int i = 0; i < strArray.length; i++) {if (k.equals(strArray[i][0])) {k = strArray[i][1];break;}}return "星期" + k;}}

五、经纬度计算距离

import lombok.experimental.UtilityClass;@UtilityClass
public class DistanceUtil {/*** 地球平均半径*/private static final double EARTH_RADIUS = 6378137;private static double rad(double d) {return d * Math.PI / 180.0;}/*** 根据两点间经纬度坐标(double值),计算两点间距离,单位为米** @param centerLng 初始点经度* @param centerLat 初始点纬度* @param targetLng 目标点经度* @param targetLat 目标点纬度*/public static double getDistance(double centerLng, double centerLat, double targetLng, double targetLat) {double radLat1 = rad(centerLat);double radLat2 = rad(targetLat);double a = radLat1 - radLat2;double b = rad(centerLng) - rad(targetLng);double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)+ Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));s = s * EARTH_RADIUS;s = Math.round(s * 10000) / 10000;return s;}
}

六、分页序号计算

public class PageNumUtil<T> {public Integer getPageNum(List<T> list, T data, Integer pageSize, Integer nowPage){return (list.indexOf(data) + 1) + pageSize * nowPage;}}

更多推荐

常用封装工具类

本文发布于:2023-12-03 20:30:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657324.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:常用   工具

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!