假如一个项目有若干个类。要用到很多final的变量。请问这时候写一个接口让所有的类来实现和单独写一个类在里面全部定义final的变量相比,哪个占用的资源少呢??为什么?

解决方案 »

  1.   

    final了再static就能唯一了,LZ说的资源不知道是否是指一个对象实例。
      

  2.   


    当然是后者。
    学过Java语言的人,应当有印象,Java的标准类里面绝大部分类就有大量的静态属性(成员变量),需要的用时候,任何其他类的方法里都可以使用标准类名.成员名的方式来访问。这是最简单、逻辑最清晰的方案。恰恰就是解决楼主要做的事情的方法。相反,使用接口变量而要其他所有类都实现的方案,显然太繁琐了,而且容易漏掉导致程序出错。
      

  3.   

    关键看你逻辑怎么分了。
    如果确实是应该放在一起的东西,放接口里也无不可。
    楼上有位仁兄说要继承接口才能用,是错误的。
    接口里的变量都是public static final的,不实现接口一样可以用。
    调用的时候,应该是:InterfaceName.value。
    而不是:someInstace.value。
      

  4.   


    这样做的话,和定义成一个类的静态成员有何区别呢?一定要使用接口的静态成员,有什么优势呢?
    为什么Java的标准类中常见的方法是使用类的静态成员而不是使用接口的呢?肯定有其道理的。
      

  5.   

    不是你想的那样,把static final变量放在一个接口里,也是很普遍的做法。