在导入类的时候,import com.*;和import com.a.class;有区别么?(声明com下面不止a一个类,多个类存在的情况下,但是只使用到a类);我记得以前老师说过,如果不使用到的类就不要导入,但是后来有人说导入一个类跟全部导入其实是一样的,还请各路高手明示。除了类的情况,在静态属性导入中也是不是跟导入类一样,需要用到才导入?还是一次性导入全部。一次性导入全部会不会出现冗余的情况呢!???求解!!

解决方案 »

  1.   

    1.在导入类的时候,import com.*;和import com.a.class;有区别么?(声明com下面不止a一个类,多个类存在的情况下,但是只使用到a类);我记得以前老师说过,如果不使用到的类就不要导入,但是后来有人说导入一个类跟全部导入其实是一样的,还请各路高手明示。
    答:
    a.import com.a.class;应该写成import com.a;
    b.import com.*;和import com.a;,它们都导入a类,所以作用都一样;import com.*;这样写省事(个人意见)2.除了类的情况,在静态属性导入中也是不是跟导入类一样,需要用到才导入?还是一次性导入全部。一次性导入全部会不会出现冗余的情况呢……
    --静态属性导入?不明白,还没了解过
      

  2.   

    老师说的是对的,要尽量少而精确地import。
    同名类命名冲突带来的Bug很隐蔽,精确import甚至不import可以减少这方面的困惑。
      

  3.   


    import static java.lang.system.*;
    这就是导入system类的全部静态属性
      

  4.   

    在找一个例子,终于找到了,楼主看看,就是使用import *引起的,错误很隐蔽
    http://topic.csdn.net/u/20100924/12/b9b84fc1-9d48-4e67-ab33-399e275e1ed9.html
      

  5.   


    这个不是在代码写全路径就可以了吗 比如java.util.Date至于一个一个导入,如果不用IDE,你亲自试过?感觉不麻烦?现在你写程序也是一个一个写import?
      

  6.   

    我用IDE,不用IDE那不是傻嘛。
    import用Eclipse自动做,自己检查一遍没错就行了,不麻烦。
      

  7.   


    我也是初学者,现在写一个涉及IO包,swing包的 如果要具体写通常十几个import
    仅仅写import就要花费大半天了呀,得不偿失。类名造成的冲突,根源真的是import导致的吗?即使不用import * 也可能造成冲突呀,
    比如java.util.Date jva.Sql.Date 这时的办法只能类中写全名了,
    而且这种现象真的很多吗,我一个星期碰不到一次,
    决不能把import *可能造成的后果,就说成是它是根源,就不使用import *了
      

  8.   


    楼主应该不在使用IDE吧,要不他的老师在说import就没意义了,因为IDE默认就是一个一个导入进来
      

  9.   

    出了问题也会麻烦啊,不过能import进来之后在根据有冲突的用路径访问不失为一种好办法吧
      

  10.   

    当然,不嫌麻烦的话,可以坚持认为逐个import比较好,这个没什么不对,只是感觉得不偿失因为IDE并非万能。以后你写一个jsp, 楼主将会意识到那是个得不偿失的做法
    人家使用一行
    import java.util.*
    你得使用十几行留个名 2个月之后 重新回忆这个贴
      

  11.   


    这发生频率相当小,,对比空指针,比类型等问题, 真的真的太小了,而且随着你对API的熟悉,会变得更加小 
      

  12.   

    .*导入了此包所有的类
    .com.a.class导入的只是class单一的这个类
      

  13.   

    那么如果com下面有十个类,我们要用到五个,你觉得是单个单个的导入还是全部的导入呢?
      

  14.   

    import *是节约力气的一种做法,
    IDE生成单类import语句也是一种节约力气的做法,
    我选后者。
    因为前者有后患。至于JSP,如果import进来的类太多,说明设计模式有问题,要将大量Java语句迁移出页面才好。
      

  15.   

    很多时候,我们意识不到,如果是一个开发中的系统,类的数目会越来越多,
    如果几天前import *正确的程序,几天后因为类的增加而变得不正确,更糟糕的是表面上正确(仍能编译)的时候,
    问题就大了。这和空指针不一样,NPE是明显的,不用害怕,而上面这种问题是阴的,要小心。
    程序员嘛,还是要谨慎点。常在河边走,哪能不湿鞋。
      

  16.   


    是的,见仁见智吧争论这种问题,没有啥意义,因为站在不同角度看,大家都是对的
    --->没有尽头的争论,类似的有 java只有值传递. java既有值传递又有引用传递.  谁是谁非??
    最后咱们倒过来想想。sun公司的设计师,为什么允许在import语句中存在“*”?
    我的猜想,
    1.使用“*”并非是不好的编程习惯(sun公司的设计师完全可以让编译器认为*是非法语句)
    2.“*”是为java程序员提供方便  (这应该是大多数程序员认可的,因为可能造成bug而禁止使用“*”反而会遭到更多程序员的反对)