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

网站建设所需服务器费用企业融资数据在哪查

网站建设所需服务器费用,企业融资数据在哪查,注册公司北京,谷德设计网 景观泛型最常用于集合#xff0c;如 SetE #xff1e;和 MapK ,V#xff1e;#xff0c;以及单个元素的容器 #xff0c;如 ThreadLocalT和 AtomicReferenceT#xff1e; 。 在所有这些用法中#xff0c;它都充当被参数化了的容器 。 这样就限制每个容器…        泛型最常用于集合如 SetE 和 MapK ,V以及单个元素的容器 如 ThreadLocalT和 AtomicReferenceT 。 在所有这些用法中它都充当被参数化了的容器 。 这样就限制每个容器只能有固定数目的类型参数。 一般来说 这种情况正是你想要的 。 一个 Set只有一个类型参数表示它的元素类型 一个 Map 有两个类型参数表示它的键和值类型....... 但是有时候你会需要更多 的灵活性 。 例如数据库的行可以有任意数量 的列如果能以类型安全的方式访问所有列就好了 。 幸运 的是有一种方法可以很容易 地做到这一点 。这种方法就是将键 key 进行参数化而不是将容器 container 参数化 。 然后将参数化的键提交给容器来插入或者获取值 。 用泛型系统来确保值的类型与它的键相符 。 下面简单地示范一下这种方法以 Favorites 类为例它允许其客户端从任意数量的其他类中保存并获取一个“最喜爱”的实例 。Class 对象充当参数化键的部分 。 之所以可以这样 是因为类 Class 被泛型化了 。 类的类型从字面上来看不再只是简单 的 Class,而是 ClassT 。 例如 String.class 属于 ClassString 类型Integer.class属于 ClassInteger 类型 。 当一个类的字面被用在方法 中来传达编译时和运行时的类型信息时就被称作类型令牌。 Favorites 类的 API 很简单 。 它看起来就像一个简单 的映射 除了键而不是映射被参数化之外 。 客户端在设置和获取最喜爱 的实例时提交 Class 对象 。 下面就是这个 API public class Favorites {public T void putFavorite(ClassT type, T instance);public T T getFavorite(ClassT type); } 下面是一个示例程序检验一下 Favorites 类它将保存、获取并打印一个最喜爱的 String 、Integer 和 Class 实例 public static void main(String[] args) {Favorites f new Favorites();f.putFavorite(String.class, Java);f.putFavorite(Integer.class, 0xcafebabe);f.putFavorite(Class.class, Favorites.class);String favoriteString f.getFavorite(String.class);int favoriteInteger f.getFavorite(Integer.class);Class? favoriteClass f.getFavorite(Class.class);System.out.printf(%s %x %s%n, favoriteString,favoriteInteger, favoriteClass.getName()) ; } 正如所料这段程序打印出的是 Java cafebabe Favorites 。 注意有时 Java 的printf 方法与 C 语言中的不同C 语言中使用\n的地方在 Java 中应该使用 %n 。 这个知会产生适用于特定平台的行分隔符在许多平台上是\n但是并非所有平台都是如此 。 Favorites 实例是类型安全 typesafe 的 当你向它请求 String 的时候 它从来不会返回一个 Integer 给你 。 同时它也是异构的 heterogeneous 不像普通的映射它的所有键都是不同类型的 。 因此我们将 Favorites 称作类型安全的异构容器 typesafe heterogeneous container。 Favorites 的实现小得出奇 。 它的完整实现如下 public class Favorites {private MapClass?, Object favorites new HashMap();public T void putFavorite(ClassT type, T instance) {favorites.put (Objects.requireNonNull(type), instance);}public T T getFavorite(ClassT type) {return type.cast(favorites.get(type)); } }这里面发生了一些微妙的事情 。 每个 Favorites 实例都得到一个称作 favorites 的私有 MapClass?,Object 的支持 。 你可能认为由于无限制通配符类型的关系将不能把任何东西放进这个 Map 中但事实正好相反 。 耍注意的是通配符类型是嵌套的 它不是属于通配符类型的 Map 的类型而是它的键的类型 。 由此可见每个键都可以有一个不同的参数化类型一个可以是 ClassString 接下来是 ClassInteger 等 。 异构就是从这里来的 。 第二件要注意的事情是favorites Map 的值类型只是 Object 。 换句话说Map 并不能保证键和值之间的类型关系即不能保证每个值都为它的健所表示的类型通俗地说就是指键与值的类型并不相同一一译者注 。 事实上Java 的类型系统还没有强大到足以表达这一点 。 但我们知道这是事实并在获取 favorite 的时候利用了这一点 。 putFavorite 方法的实现很简单它只是把从指定的 Class 对象到指定的 favorite 实例 一个映射放到 favorites 中 。 如前所述 这是放弃了键和值之间的“类型联系 ” 因此无法知道这个值是键的一个实例 。 但是没关系因为 getFavorites 方法能够并且的确重新建立了这种联系 。 getFavorite 方法 的 实 现比 pu tFavorite 的更难一些 。 它先从 favorites 映射中获得与指定 Class 对象相对应的值 。 这正是要返回的对象引用但它的编译时类型是错误的 。 它的类型只是 Object (favorites 映射的值类型我们需要返回一个 T 。因此getFavorite 方法的实现利用 Class 的 cast 方法将对象引用动态地转换 dynamicallycast 成了 Cl ass 对象所表示自由类型。 cast 方法是 Jav a 的转换操作符的动态模拟 。 它只检验它的参数是否为 Class 对象所表示的类型的实例 。 如果是就返回参数否则就抛出 ClassCastException 异常 。 我们知 道 getFavorite 中的 cast 调用永远不会抛出 ClassCastException 异常并假设客户端代码正确无误地进行了编译 。 也就是说我们知道 favor 工 tes 映射 中的值会始终与键的类型相匹配 。 假设 cast 方法只返回它的参数那它能为我们做什么呢cast 方法的签名充分利用了 Class 类被泛型化的这个事实 。 它的返回类型是 Class 对象的类型参数 这正是 getFavorite 方法所需要的也正是让我们不必借助于未受检地转换成 T 就能确保 Favorites 类型安全的东西 。 总而言之集合 API 说明了泛型的一般用法限制 每个容器只 能有固定数目的类型参数 。 你可以通过将类型参数放在键上而不是容器上来避开这一限制 。 对于这种类型安全的异构容器可以用 Class 对象作为键 。 以这种方式使用的 Class 对象称作类型令牌 。 你也可以使用定制的键类型 。 例如用一个 DatabaseRow 类型表示一个数据库行容器用泛型 ColumnT作为它的键 。
http://www.hkea.cn/news/14573916/

相关文章:

  • 黑色背景的网站开发工具腾讯企业邮箱网址
  • 衡水网站建设公司联系电话济南的互联网公司
  • 设计网站公司湖南岚鸿公司音乐制作软件哪个好
  • 有关做橡胶品的网站杭州营销策划有限公司
  • 高水平的大连网站建设wordpress手机号登陆
  • 厦门建设网站的自己创网站
  • 网站结构的类型做家居商城网站
  • 淘客怎么用网站做怎样自学设计室内装修效果图
  • 手机网站 百度推广网贷代理推广
  • 怎么做网站赚钱徐州招聘网站哪个好
  • 深圳市宝安区做网站建设的企业wordpress代码编写
  • 室内设计网站大全免费成都航空公司官方网站
  • 全面的郑州网站建设网站设计网页版
  • 网站没排名的原因最新一轮阳性症状
  • 网站开发基于百度地图漳州微网站建设哪家好
  • 音乐门户网站模板网络营销核心要素
  • 福田网站建设费用明细广州开发区第一小学
  • 辽宁建设厅证件查询网站wordpress禁止右键
  • 辽阳企业网站建设服务最全的百度网盘搜索引擎
  • 网页设计的交流网站做推广都有哪些网站
  • 建网站多少钱建个网站需要怎么做wordpress添加媒体在角落
  • 无极门户网站中信建设有限责任公司工会
  • 网站备案有什么用西安航空城建设发展集团网站
  • 旅游商业网站策划书昆山网站建设哪家好
  • 网站结构有哪些类型开发公司绩效考核
  • 公司网站建设模块简介搜索广告是什么
  • 江西赣州网站wordpress主题不显示小工具
  • 哪个网站查企业信息免费百度网站首页入口
  • 网站设计对网站搜索引擎友好性的影响做优惠网站多少钱
  • 做网站的那些高清图上哪里找外网浏览网站