zoukankan      html  css  js  c++  java
  • 日常 2018年6月11日21:07:22 周一

      1.重复执行SimpleDateFormate导致的,java.lang.IllegalArgumentException: Bad class: class java.lang.String 问题:

    既然传入的begin、end已经是规范格式,就不要再 format.format(begin);了!
     /**
         * 计算两个日期之间相差多少天
         *
         * @param begin 2016-05-01 12:00
         * @param end   2016-06-01 12:00
         * @return String[]  [0]day, [1]hour, [2]minute
         */
        public static String[] getDifferMinute(String begin, String end) {
            L.w("begin: " + begin + "  end:  " + end);
            // 一天有(24*60*60*1000)毫秒
            long nd = 1000 * 24 * 60 * 60;
            long nh = 1000 * 60 * 60;
            long nm = 1000 * 60;
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            //Bug
            //Caused by: java.lang.IllegalArgumentException: Bad class: class java.lang.String
    //        String fromDate = format.format(begin);
    //        String toDate = format.format(end);
            long from = 0, to = 0;
            try {
                from = format.parse(begin).getTime();
                to = format.parse(end).getTime();
                // 获得两个时间的毫秒时间差异
                long diff = to - from;
                // 计算差多少天
                long day = diff / nd;
                // 计算差多少小时
                long hour = diff % nd / nh;
                // 计算差多少分钟
                long min = diff % nd % nh / nm;
                return new String[]{String.valueOf(day), String.valueOf(hour), String.valueOf(min)};
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }

      2.ViewStub设置setLayoutResoure之后 inflate,会自动销毁,并将视图交给父布局管理。所以不能把几个ViewGroup交给同一个ViewStub去管理!很坑!

      3.Spinner控件调用 setOnItemSelectedListener 会自动执行一次select方法,通过调用 spinnerDutyPerson.setSelection(0, true);  屏蔽:

      //禁止OnItemSelectedListener自动调用
            spinnerDutyPerson.setSelection(0, true);
            //放到TagContainer里
            spinnerDutyPerson.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    if (cjExecutorNames.size() > 0) {
                        List<String> tags = tagContainer.getTags();
                        tags.add(cjExecutorNames.get(position));
                        LinkedHashSet<String> set = new LinkedHashSet<>(tags);
                        tags.clear();
                        tags.addAll(set);
                        tagContainer.setTags(tags);
                    }
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });

      4.Predicate 过滤:

     private Predicate predicateString(String string) {
            Predicate ss = (s) -> s.toString().equals(string);
            return (s) -> s.toString().equals(string);
    }

      5.List去重:有序LinkedHashSet、无序HashSet ,Very Good !亲测有效,可以过滤掉 List<String> 中重复的字符串:

     List<String> tags = tagContainer.getTags();
            L.d("size: " + tags.size());
            if (tags.size() > 0) {
    //            tags.stream().distinct().collect(Collectors.toList());//java8
                LinkedHashSet set = new LinkedHashSet(tags);
                tags.clear();
                tags.addAll(set);
                L.d("distinct size: " + tags.size());
            } else {
                T.showLong("请添加联系人");
                return;
            }

       去重对象:

    //未选中,需要HashSet去重,确定之后做即可
                HashSet<CJExecutorEntity> set = new HashSet<>();
                for (CJExecutorEntity bean : tempStates) {
                    set.add(bean);
                }
                tempStates.clear();
                tempStates.addAll(set);
  • 相关阅读:
    ASP.NET MVC 4高级编程(第4版)
    Unity3d报告奇怪的错误CompareBaseObjectsInternal can only be called from the main thread.
    HDU 4862 Jump(更多的联合培训学校1)(最小费用最大流)
    0,22, 47, 120,(? ),290
    它们的定义Activity跳转动画
    ssh探头安全
    Netty:一种非易失堵塞client/server相框
    Swift类和结构
    php+mysql+nginx于linux部署对环境
    javascript 次序li
  • 原文地址:https://www.cnblogs.com/jooy/p/9169302.html
Copyright © 2011-2022 走看看