java中,有种挖坑的感觉,大家会怎么做呢。

不喜欢吃素的菜鸟 发布于 2013/09/08 20:17
阅读 1K+
收藏 1

有种挖坑的感觉,大家会怎么做呢。

package com.test.test;

import java.util.ArrayList;
import java.util.List;

/**
 * 有人像我这样写代码的吗,我是看具体情况而定<br>
 * 感觉像是在挖坑<br>
 * 怎么做更好点呢,大家平常都怎么做。<br>
 * 
 * @author test
 * @see JDK 1.4 
 *
 */
public class Test1 {
    public void test(){
        final List list = new ArrayList();
        final List list_free = new ArrayList();
        String id = "t1";
        String action = null;
        String result = null;
        
        /**
         * 请注意,如果将所有代码写进入一个方法里面,可能超过1000行也说不定。<br>
         * 如果你需要在原来的功能上加些新功能。
         * 
         */
        
        result = "test_test;t1;ttt2;tttttttt3"; // 业务要求,这里会新赋值
        if(id != null && !id.matches("^\\s*$")){
            getInfoById(id.trim(), list); // 会修改list
            // getInfoById(id.trim(), list, list_free); // 如果是这样子的
        }
        
        if("条件1".equals(action)){
            result = join(list, result); // 不修改list,只做数据的来源
        } else if("条件2".equals(action)){
            result = join(list, result); // 不修改list,只做数据的来源
        } else {
            result = join(list, result); // 不修改list,只做数据的来源
        }
        
        System.out.println(result);
    }
    
    public String join(List list, String result){
        StringBuffer sb_result = new StringBuffer();
        String[] arr = result.split(";");
        int arr_length = arr.length;
        String item = null;
        
        for(int i = 0; i <arr_length; i++){
            item = arr[i];
            if(item.matches("^\\s*$")){
                continue;
            }
            if(list.contains(item)){
                continue;
            }
            
            sb_result.append(item).append(";");
        }
        
        int list_size = list.size();

        for(int i = 0; i < list_size; i++){
            sb_result.append((String) list.get(i)).append(";");
        }
        
        return sb_result.toString();
    }
    
    public void getInfoById(String id, List list){
        // 根据id查询数据库
        String str = null;
        // while(rs.next()){
            list.add(str);
        // }
    }
    
    public void getInfoById(String id, List list, List listFree){
        // 根据id查询数据库
        String str = null;
        String str1 = null;
        
        // while(rs.next()){
            // str = rs.getString("a");
            // str1 = rs.getString("b");
        
            list.add(str);
            listFree.add(str1);
        // }
    }
    
}

加载中
0
loyal
loyal

领导说,开始挖坑...那你就挖呗!

争取挖的大点,深点,将来不可填平的坑啊!

一坑在手,所向披靡!谁都开不掉你!

要大!要深!要复杂!

大漠穷秋
大漠穷秋
回复 @晓骏 : 比如说,什么样的公司叫做【正规公司】?
铂金小猪
铂金小猪
这是你喷子说的最正确的一句话,不错,继续保持。猪哥看好你。
loyal
loyal
回复 @晓骏 : 这取决于你挖坑的技术水平了,和代码评审没关系.两码事!评审通过,坑照样挖的很好!
首席安全砖家
首席安全砖家
回复 @雨翔河 : 如果碰到正规的大公司,你敢挖坑,代码审查的时候,不K 死你都有怪
easymbol
easymbol
一坑在手天下我有?!!!
下一页
0
XzhiF
XzhiF
看到那个sb_result颇有喜感
不喜欢吃素的菜鸟
不喜欢吃素的菜鸟
(⊙o⊙)…
0
专业打酱油
专业打酱油
喜闻乐见、不明觉厉
不喜欢吃素的菜鸟
不喜欢吃素的菜鸟
很抱歉,对于曾经考试不写作文的我来说,你的几个字太深奥了,难以理解。最关键还是百度找不到具体答案。
0
j
just4scala

我觉得可以把第一个if完全提出,然后下面几个public方法改成private,join()方法中的参数list改成final。

好的代码是不断重构出来的,会有通用的法则么?

j
just4scala
回复 @不喜欢吃素的菜鸟 : 因为第一个if和下面的if逻辑是完全不一样的,所以可以提出做一个单独的方法,同样下面的那些if也可以这样处理。加final是只是一个提示作用,说明这个list是在方法中是不允许改变的。不过你这里似乎用unmodifiableList会更好。
不喜欢吃素的菜鸟
不喜欢吃素的菜鸟
1___.第一个if指:if(id != null && !id.matches("^\\s*$")){。id是在一个对象中获取的,并不一定存在。 2___.下面的几个方法改成private,是会比较好。 3___.这里的public String join(List list, String result){,List 为什么要改成final?
0
panmingguang
panmingguang

这个真有, 以前 老公司一个 框架就是这么玩的

if(action.equals("")){

action1();

}

if(action.equals("")){

action2();

}

cyper
cyper
第二个if应该改成else if,10年前的java代码确实是这么写的。
不喜欢吃素的菜鸟
不喜欢吃素的菜鸟
你上面写的if(...){...} if(...){...}想要说明什么呢,不是很清楚。
不喜欢吃素的菜鸟
不喜欢吃素的菜鸟
getInfoById(...)方法。
不喜欢吃素的菜鸟
不喜欢吃素的菜鸟
这个是if判断。其实我更想问一般写方法都是有返回值的,你们看我把List 单参数传入到方法中,但是在方法中进行了修改List,而不是返回一个List。
panmingguang
panmingguang
你一说, 我到也想起来了, struts1 也是这么玩的, 我以前偷懒 就这么写, 否则配置 太麻烦
下一页
0
迷途蜗牛
迷途蜗牛
我以前也是这样写的,好痛苦啊!!!后来用了SPRINGMVC一切都解决了。
0
cloudy_l
cloudy_l
我好像也是这么挖的!
0
mallon
mallon
完全看不懂你的代码要做什么
0
宏哥
宏哥

引用来自“Mallon”的答案

完全看不懂你的代码要做什么

Java写出来的代码都好奇怪 -- 脱裤子放屁

0
mallon
mallon

引用来自“宏哥”的答案

引用来自“Mallon”的答案

完全看不懂你的代码要做什么

Java写出来的代码都好奇怪 -- 脱裤子放屁

而且写Java的语言表达能力都很差劲,头脑也很混乱
返回顶部
顶部