• java好习惯2


    1.这么拼参数的

    学习一下,当keys.length-1是加上"&"而且是在拼串的后面

    public static String map2Content(Map params){
      StringBuilder stringBuilder=new StringBuilder();
      try {
        Set keySet=params.keySet();
        Object[] keys=keySet.toArray();
        for (int i=0; i < keys.length; i++) {
          stringBuilder.append(encode(keys[i].toString(),"UTF-8")).append("=").append(encode(params.get(keys[i]).toString(),"UTF-8"));
          if (i < (keys.length - 1)) {
            stringBuilder.append("&");
          }
        }
      }
     catch (  Exception e) {
        throw new HttpException("failed to generate content from map",e);
      }
      return stringBuilder.toString();
    }

    2.如果文件存在就删除,再创建一个新文件

    private void saveUsers(Set<String> set,String fileName){
      File f=new File(getDataFolder(),fileName);
      if (f.exists()) {
        f.delete();
      }
      try {
        f.createNewFile();
        BufferedWriter bWriter=new BufferedWriter(new FileWriter(f));
        int count=0;
        for (    String name : set) {
          bWriter.write(name + System.getProperty("line.separator"));
          count++;
        }
        ConsoleUtils.printInfo(NAME,"Saved " + count + " users in '"+ fileName+ "'!");
        bWriter.flush();
        bWriter.close();
      }
     catch (  Exception e) {
        ConsoleUtils.printException(e,NAME,"Error while saving file '" + fileName + "'!");
      }
    }

    3.if(widget instanceof Checkbox){

    CheckBox cb = (Checkbox)widget如果是这个的实例,强转成这个类,常用的写法

    }

    @Override public Set<Activity> ge
    tInstitutionActivities(){ Set
    <Activity> activities=new HashSet<Activity>(); for (int i=0; i < institutionActivities.getWidgetCount(); i++) { Widget widget=institutionActivities.getWidget(i); if (widget instanceof CheckBox) { CheckBox cb=(CheckBox)widget; if (cb.getValue()) { Activity activity=new Activity(); activity.setId(Integer.parseInt(cb.getFormValue())); activity.setName(cb.getText()); activities.add(activity); } } } return activities; }

    4.set中添加元素而且不重复

    private Object createStringSet(String... strings){
      Set<String> stringSet=new HashSet<String>();
      for (  String string : strings) {
        stringSet.add(string);
      }
      return stringSet;
    }

    5.异常时可以返回null,为空可以返回null

    public static String getSearchEngineQueryString(HttpServletRequest request,String referrer){
      String queryString=null;
      String hostName=null;
      if (referrer != null) {
        URL refererURL;
        try {
          refererURL=new URL(referrer);
        }
     catch (    MalformedURLException e) {
          return null;
        }
        hostName=refererURL.getHost();
        queryString=refererURL.getQuery();
        if (Strings.isEmpty(queryString)) {
          return null;
        }
        Set<String> keys=seParams.keySet();
        for (    String se : keys) {
          if (hostName.toLowerCase().contains(se)) {
            queryString=getQueryStringParameter(queryString,seParams.get(se));
          }
        }
        return queryString;
      }
      return null;
    }

    6.用Iterator遍历collection

    @SuppressWarnings("rawtypes") public static String toReadableString(Collection collection){
      Iterator it=collection.iterator();
      StringBuilder strb=new StringBuilder();
      while (it.hasNext()) {
        Object next=it.next();
        strb.append(next.toString() + ", ");
      }
      if (strb.length() > 2) {
        strb.delete(strb.length() - 2,strb.length());
      }
      return strb.toString();
    }

    7.将JSON字符串变成map

    public static Map<String,Object> parseJSON(String jsonBody) throws JSONException {
      Map<String,Object> params=new HashMap<String,Object>();
      JSONObject obj=new JSONObject(jsonBody);
      Iterator it=obj.keys();
      while (it.hasNext()) {
        Object o=it.next();
        if (o instanceof String) {
          String key=(String)o;
          params.put(key,obj.get(key));
        }
      }
      return params;
    }

    8.这样往param中设置参数,request.getParameter()

    protected void copyParams(HttpParams target){
      Iterator iter=parameters.entrySet().iterator();
      while (iter.hasNext()) {
        Map.Entry me=(Map.Entry)iter.next();
        if (me.getKey() instanceof String)     target.setParameter((String)me.getKey(),me.getValue());
      }
    }

    9.jsonnode的遍历

    private <T>List<T> deserializeList(JsonNode jsonNode,String postType,Class<T> type){
      JsonNode dataNode=jsonNode.get("data");
      List<T> posts=new ArrayList<T>();
      for (Iterator<JsonNode> iterator=dataNode.iterator(); iterator.hasNext(); ) {
        posts.add(deserializePost(postType,type,(ObjectNode)iterator.next()));
      }
      return posts;
    }

    10.遍历map

    public static void writeOneToMany(final OutputStream sink,Map mapping) throws Exception {
      final StringBuilder out=new StringBuilder();
      if (mapping == null) {
        mapping=new HashMap();
      }
      final Iterator keyIter=mapping.keySet().iterator();
      while (keyIter.hasNext()) {
        final String name=(String)keyIter.next();
        out.append(name).append(" ");
        final Collection points=(Collection)mapping.get(name);
        final Iterator pointIter=points.iterator();
        while (pointIter.hasNext()) {
          final Point point=(Point)pointIter.next();
          out.append(" (").append(point.x).append(",").append(point.y).append(")");
          if (pointIter.hasNext())       out.append(" ");
        }
        if (keyIter.hasNext()) {
          out.append("
    ");
        }
      }
      write(out,sink);
    }

    11.Iterator这么写

    public List<File> getFileList(){
      List<File> list=new ArrayList<File>();
      for (Iterator it=iterator(); it.hasNext(); ) {
        FileResource resource=(FileResource)it.next();
        File file=resource.getFile();
        list.add(file);
      }
      return list;
    }

    12.set.add(元素)set这么添加元素的

    private Object createStringSet(String... strings){
      Set<String> stringSet=new HashSet<String>();
      for (  String string : strings) {
        stringSet.add(string);
      }
      return stringSet;
    }

    13.格式化日期

    /** 
     * Creates a Calendar object based off a string with this format <Day name:3 letters>, DD <Month name: 3 letters> YYYY HH:MM:SS +0000
     * @param date - The string we are to convert to a calendar date
     * @return - The calendar date object that this string represents
     */
    public static Calendar makeDate(String date){
      Date d=null;
      Calendar calendar=Calendar.getInstance();
      try {
        SimpleDateFormat format=new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
        d=format.parse(date);
        calendar.setTime(d);
      }
     catch (  ParseException e) {
        e.printStackTrace();
      }
      return calendar;
    }

    14.学习这种日期的返回方式

    public Date getDate(){
      if (value == null) {
        return null;
      }
      if (value instanceof Date) {
        return (Date)value;
      }
      throw new DbException(String.format("%s is not a date",value.toString()));
    }

    15.为什么要这么判断呢?

    public Date parse(final String source) throws ParseException {
      if (source == null) {
        throw new ParseException("source is null",0);
      }
      return formater.parse(source);
    }

    16.

    public static String getSearchEngineQueryString(HttpServletRequest request,String referrer){
      String queryString=null;
      String hostName=null;
      if (referrer != null) {
        URL refererURL;
        try {
          refererURL=new URL(referrer);
        }
     catch (    MalformedURLException e) {
          return null;
        }
        hostName=refererURL.getHost();
        queryString=refererURL.getQuery();
        if (Strings.isEmpty(queryString)) {
          return null;
        }
        Set<String> keys=seParams.keySet();
        for (    String se : keys) {
          if (hostName.toLowerCase().contains(se)) {
            queryString=getQueryStringParameter(queryString,seParams.get(se));
          }
        }
        return queryString;
      }
      return null;
    }

    17.

    /** 
     * Gets URL for base of path containing Finalizer.class.
     */
    URL getBaseUrl() throws IOException {
      String finalizerPath=FINALIZER_CLASS_NAME.replace('.','/') + ".class";
      URL finalizerUrl=getClass().getClassLoader().getResource(finalizerPath);
      if (finalizerUrl == null) {
        throw new FileNotFoundException(finalizerPath);
      }
      String urlString=finalizerUrl.toString();
      if (!urlString.endsWith(finalizerPath)) {
        throw new IOException("Unsupported path style: " + urlString);
      }
      urlString=urlString.substring(0,urlString.length() - finalizerPath.length());
      return new URL(finalizerUrl,urlString);
    }

    18.catch时可以返回返回值类型的

    /** 
     * Reads in data from the saved file.
     * @param context - Context that gives us some system access
     * @return - Returns the list of items that were saved; If there was problemwhen gathering this data, an empty list is returned
     */
    @SuppressWarnings("unchecked") public static ArrayList<Article> readData(Context context){
      ArrayList<Article> oldList=new ArrayList<Article>();
      try {
        FileInputStream fileStream=context.openFileInput("articles");
        ObjectInputStream reader=new ObjectInputStream(fileStream);
        oldList=(ArrayList<Article>)reader.readObject();
        reader.close();
        fileStream.close();
        return oldList;
      }
     catch (  java.io.FileNotFoundException e) {
        return new ArrayList<Article>();
      }
    catch (  IOException e) {
        Log.e("AARSS","Problem loading the file. Does it exists?",e);
        return new ArrayList<Article>();
      }
    catch (  ClassNotFoundException e) {
        Log.e("AARSS","Problem converting data from file.",e);
        return new ArrayList<Article>();
      }
    }

    19.在finally中关闭输入流

    public static void read(Properties props,File file) throws IOException {
      FileInputStream fis=null;
      try {
        fis=new FileInputStream(file);
        props.load(fis);
      }
      finally {
        close(fis);
      }
    }

    20.

  • 相关阅读:
    Docker生态会重蹈Hadoop的覆辙吗?
    刘志强博士:专业涵养 奉献情怀
    Sublime Text3前端必备插件
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
    jvm的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集(转)
    Eclipse安装MAT插件
    tomcat内存泄漏存入dump文件
    CSS中behavior属性语法简介
    get/post时中文乱码问题的解决办法
    Java序列化的机制和原理
  • 原文地址:https://www.cnblogs.com/lonely-buffoon/p/5764121.html
Copyright © 2020-2023  润新知