zoukankan      html  css  js  c++  java
  • 关于java中接口定义常量和类定义常量的区别

    /**
     * 
     * @author YZJ
     * @Description java中定义常量的最佳方法
     */
    public final class Contants{
    	/**
    	 * @Description 私有化构造方法
    	 */
    	private Contants(){};
    	
    	public  static final int contants1 = 1<<1;
    	
    	public  static final int contants2 = 1<<2;
    	
    	public  static final int contants3 = 1<<3;
    	
    }
    

      详情可参见

    http://hussion.iteye.com/blog/1322308

          以及

    http://stackoverflow.com/questions/2659593/what-is-the-use-of-interface-constants

    理由:理由SO上面写的很清楚,如果你实现了这个常量接口,那么它将暴露出所有的常量,不管你需不需要,这是不利于封装性的,还有一些序列化的操作,假设我在这个接口中只定义这些常量,调用的时候直接接口名.常量名来调用,这样不就没有这个问题了吗,这个想法在上面第一个地址中写道,当你通过反射动态的改变了接口中的常量时,从另一个类中是无法获取这种改变的,主要是因为当初java接口的(static final)的设计,所以,使用我代码中的方式定义常量,我觉得是最好的一种方式。

  • 相关阅读:
    面试总结
    java高级开发
    idea的快捷键
    微服务面试题目
    windows下jenkins的安装与配置
    微服务面试集合
    springlcoud中使用consul作为注册中心
    乐观锁和悲观锁
    volatile与synchronized的区别
    Java CAS 和ABA问题
  • 原文地址:https://www.cnblogs.com/yzjT-mac/p/6022976.html
Copyright © 2011-2022 走看看