比如说一个方法要返回一个List list, list=A() 是刚开始就初始化为new ArrayList() ,每次判断是否为空,才生成一个list 那种效率高点呢?  欢迎详细讨论,哈~~~

解决方案 »

  1.   

    无解
    if (x == 1)

    if (x == 1 && x > foo())
    其中,
    public int foo() {
      try {
        Thread.sleep(10000);
      } catch (Exception ex) {
      }
      return 100;
    }
    同样道理,构造函数也可以写的很复杂,也可以sleep
      

  2.   

    A方法会返回一个List,但是该List也有可能为null,而我现在这边是要返回一个一个list,不可以为null,不然掉用我方法的项目就会抛异常了,那边又不想做判断,就是这样咯。
      

  3.   

    你意思是
    1.List list = new ArrayList()
    2.if(list == null) {
         list = new ArrayList();
      }
      

  4.   

    你返回一个List  始终要先new一个list来存数据才行啊。你问的不解 
      

  5.   

    list = A();
    list = list == null ? new ArrayList() : list;orA() {
       return list == null ? new ArrayList() : list;
    }
      

  6.   

    A() {
      List list = new ArrayList()
      return list;
    }
      

  7.   

    List l = YourMethod();
    if (l == null)
    {
      l = new ArrayList();
    }还有别的做法?
      

  8.   

    好像这样写也行,你觉得呢? public List<String> Test()
    {
    List list = null;
    list = A();
    return (list == null)?new ArrayList():list;
    }
      

  9.   

    这题好有意思。
    1.
    List list = null;
    if(list == null){
       list = new ArrayList();
    }2.
    List list = new ArrayList();这第一种情况肯定比第二种情况要费时,因为多加了一个if嘛,而根据list的值不同时间差异也会缩小是吧,所以这里的时间完全可以忽略不计。
    是否要判断这应该是跟你的业务挂√的。
    下面写一个小DEMO。public class Order { private String name;
    //
    private Set<OrderLine> orderLines = new HashSet<OrderLine>(); public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public Set<OrderLine> getOrderLines() {
    // 
    return Collections.unmodifiableSet(orderLines);
    } public void addOrderLine(OrderLine orderLine) {
    //
    orderLines.add(orderLine);
    } public void setOrderLines(Set<OrderLine> orderLines) {
    // this.orderLines = orderLines; 
    // 为什么没有向上面来做,是因为如果是这样赋值的话那么两个对象就是同一个引用了。
    // 用户修改orderLines,this.orderLines也同样会被修改。
    // 而提供这个类希望用户通过该类提供的接口来修改orderLines。
    orderLines.addAll(orderLines);
    }}
      

  10.   

    不是这样的,可能我没有解释清楚吧。
    List list = null;
    list = A();
    if(list == null){
       list = new ArrayList();
    }
    是这样哦。
      

  11.   


    这我就有几个疑问了。首先A方法是你自己写的还是别人的。
    而且首先要确定A是否可能会返回null。呵呵。
    如果会返回那当然要判断。
    而且如果两个方法都是你自己写的话,那你自己可以根据实际情况来设计你自己的代码啊。
    这样if不也会根据实际情况来改变吗?
      

  12.   

    A()方法别人写的,有可能返回null。没仔细看帖啊。这贴就结了他把。
      

  13.   

    这题很能体现Javadoc的作用。
    在一般开源项目中,如果一个方法会返回什么。就比如返回list,在什么情况可能为null。
    或者isEmpty() == true。这种情况都会有详细的解说。如果这些都没有,你无法得知在什么情况下会返回什么,那加上if也是买保险。