java中求1 2 =3,Java基础知识二

1.出现org.omg.CORBA.portable错误

我本地开发使用的是java8,远程服务器使用的是openjdk11,在maven打包的时候,出现了一个奇怪的问题

bd929cd6ae570dbaf6bcd9f5b6fb1f68.png

刚开始觉得莫名其妙,后来打开GlobalExceptionHandler类一看,原来引入了org.omg.CORBA.portable.ResponseHandler,虽然最后没有用上,但是还是影响了编译。

bd929cd6ae570dbaf6bcd9f5b6fb1f68.png

把这个去掉就可以了。

2.java中List遍历删除元素1

2

3

4

5

6Iterator iterator = result.iterator();

while (iterator.hasNext()) {

if(resultSet!=null&&resultSet.next()){

iterator.remove();

}

}

3.Double数相加

两个double类型的数相加,比如0.1+0.1,本来应该等于0.2,但是使用double类型的值进行相加,最后可能得到的是0.200001这种,并不是我想要的。

bd929cd6ae570dbaf6bcd9f5b6fb1f68.png

加完之后返回到前台

bd929cd6ae570dbaf6bcd9f5b6fb1f68.png

这里的28345.827999999998,很明显后面的位数都是无效的。

解决方法是使用BigDecimal进行相加(使用这个会不会带来性能的影响呢?)

1

2

3BigDecimal b1=new BigDecimal(Double.toString(d1));

BigDecimal b2=new BigDecimal(Double.toString(d2));

return b1.add(b2).doubleValue();

4.BigDecimal类型1

2

3

4

5

6BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

b1.add(b2); //加

b1.subtract(b2); //减

b1.divide(b2); //除

b1.multiply(b2); // 乘

5.取出list集合中的某一列属性

需求就是,我的list是一个实体类的集合,如何快速获取到这个集合中所有id号的集合呢?

1

2// 类User有一个getId方法

List id_list=list.stream().map(User::getId).collect(Collectors.toList());

6.StringBuilder删除最后一个字符1

2

3

4

5StringBuilder sqlbuilder=new StringBuilder();

// 方法一

sqlbuilder.setLength(result.length()-1);

// 方法二

sqlbuilder.deleteCharAt(sqlbuilder.length()-1);

7.利用反射获取对象的全部属性值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

39public class Utils{

private final static Logger logger= LoggerFactory.getLogger(Utils.class);

public static String showAllProperty(RealTime realTime){

StringBuilder result=new StringBuilder();

try {

//使用反射技术完成对象属性的输出

Class> c = null;

c = Class.forName("com.bibichuan.bigdata.Entity.RealTime");

Field [] fields = c.getDeclaredFields();

for(Field f:fields){

f.setAccessible(true);

}

//输出p1的所有属性

for(Field f:fields){

Object property=f.get(realTime);

String type=f.getType().getName();

if(property==null){

property="";

}

if(f.getName().equals("RecordTime")){

String t=property.toString();

int i=t.indexOf(".");

property=t.substring(0,i>0?i:t.length());

}

if(type.equals("java.lang.String")){

property="'"+property+"'";

}

result.append(property+",");

}

if(result.length()>0){

result.setLength(result.length()-1);

}

}catch (Exception e){

logger.error("showAllProperty",e);

}

return result.toString();

}

}

8.Variable used in lambda expression should be final or effectively final

在idea中的stream().foreach中试图改变外部变量的值的时候,会出现这个错误。

bd929cd6ae570dbaf6bcd9f5b6fb1f68.png

怎么办,别用啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值