当前位置: 首页 > news >正文

接口只用于定义类型(19)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、类实现了接口,接口就充当引用类实例的类型

  • 为了其他任何理由定义接口是不恰当的

2、常量接口不满足1、是对接口的不良使用

  • 类实现常量接口,对于类没有任何价值
  • 非final 类实现常量接口,所有子类命名空间都会被污染

075832_QS9L_3847203.png

3、应该使用枚举类或者不可实例化的工具类(构造函数私有化)

  • 工具类导出的常量,用静态导入机制,避免使用类名

4、接口只被用来导出类型,不要用来导出常量

5、Static Import机制常常被直译成“静态导入”

  • “静态导入”或者“静态成员导入”

  • 精准导入静态变量、静态方法
  • 可以导入一个类里的一切被static修饰的东西,包括变量、常量、方法和内类
import static java.lang.Math.PI;

import static java.lang.Math.sin;

//声明遇到来历不明的成员时到java.lang.Math中去寻找
//并不是把这个类或接口里的所有静态成员全部导入
import static java.lang.Math.*;
  • 如果两个语句都是精确导入的形式,或者都是按需导入的形式,那么会造成编译错误。
  • 如果一个语句采用精确导入,一个采用按需导入的形式,那么采用精确导入的形式的一个有效。
  • 导入的东西还可能和本地的东西相冲突,这种情况下的处理规则,是“本地优先"
  • 都会被编译器打回原型。因此在性能方面,Static Import没有任何影响
  • 增加了阅读理解的麻烦
  • 可能给维护工作带来一定的困扰

转载于:https://my.oschina.net/u/3847203/blog/1825644

相关文章:

  • 洛谷 P2421 [NOI2002]荒岛野人
  • python第五天学习总结
  • Nginx配置详解
  • ngnix-内网能用,外网不能用
  • 从一到无穷大:科学中的事实和臆测 (G. 伽莫夫 著)
  • java nio和bio
  • redis(一)
  • [Web 前端] 你不知道的 React Router 4
  • 斗地主AI算法——第四章の权值定义
  • PicGo的star数破1000的心路历程
  • Kotlin基础五
  • 转:少走弯路,给Java 1~5 年程序员的建议
  • 吴恩达《Machine Learning Yearning》总结(21-30章)
  • ESP8266的低功耗方案-睡眠模式
  • NPOI 自定义单元格背景颜色-Excel
  • 07.Android之多媒体问题
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • cookie和session
  • ECMAScript入门(七)--Module语法
  • emacs初体验
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Octave 入门
  • Sublime text 3 3103 注册码
  • Zepto.js源码学习之二
  • 从setTimeout-setInterval看JS线程
  • 对超线程几个不同角度的解释
  • 给初学者:JavaScript 中数组操作注意点
  • 思考 CSS 架构
  • 推荐一个React的管理后台框架
  • 微信小程序开发问题汇总
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 《天龙八部3D》Unity技术方案揭秘
  • ​马来语翻译中文去哪比较好?
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ${factoryList }后面有空格不影响
  • (0)Nginx 功能特性
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (三)uboot源码分析
  • (算法二)滑动窗口
  • (推荐)叮当——中文语音对话机器人
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .gitignore文件_Git:.gitignore
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET值类型变量“活”在哪?
  • @angular/cli项目构建--http(2)
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [ANT] 项目中应用ANT
  • [C++]运行时,如何确保一个对象是只读的