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

黄骅市网站建设怎么不花钱做公司网站

黄骅市网站建设,怎么不花钱做公司网站,威海seo公司,一个网站有哪几种漏洞动态展示您的课程 当我是Java新手时#xff0c;我记得当时想过应该有一种方法可以删除或隐藏我不想公开的类中的方法。 就像用private方法或类似方法覆盖public方法一样#xff08;哪种情况是不可能的#xff0c;也不应该是不可能的#xff09;。 显然#xff0c;今天我记得当时想过应该有一种方法可以删除或隐藏我不想公开的类中的方法。 就像用private方法或类似方法覆盖public方法一样哪种情况是不可能的也不应该是不可能的。 显然今天我们都知道通过暴露 interface 。 公爵和尖顶露出另一种样子…… 通过使用名为Alternating Interface Exposure的方案我们可以动态查看类的方法并输入安全类型以便同一类可以强制实施应该使用的模式。 让我举个例子。 假设我们有一个Map构建器可以在构建实际Map之前先相继添加键和值来调用它。 Alternating Interface Exposure方案使我们能够确保调用key()方法和value()的次数完全相同并且只有在存在该调用时 build()方法才可调用例如在IDE中可见。键和值一样多。 我正在参与的开源项目Speedment中使用了Alternating Interface Exposure方案。 在Speedment中例如在构建类型安全的Tuple时使用该方案随后在向TupleBuilder添加元素之后将构建该类型安全的Tuple 。 这样如果我们编写TupleBuilder.builder().add(Meaning of Life).add(42).build() 我们可以得到类型化的Tuple2String, Integer {“生命的含义”42} TupleBuilder.builder().add(Meaning of Life).add(42).build() 。 使用动态地图生成器 我在以前的一些文章中例如这里 多次写过关于Builder模式的文章如果您不熟悉这个概念我鼓励您在阅读之前重新阅读有关此问题的文章。 当前的任务是产生一个Map构建器它使用许多上下文相关的接口动态地公开许多实现方法。 此外构建器应在首次使用它们时“学习”其键/值类型然后对其余条目实施相同类型的键/值。 这是一个示例说明一旦开发人员如何在代码中使用该构建器 public static void main(String[] args) {// Use the type safe builderMapInteger, String map Maps.builder().key(1) // The key type is decided here for all following keys.value(One) // The value type is decided here for all following values.key(2) // Must be the same or extend the first key type.value(Two) // Must be the same type or extend the first value type.key(10).value(Zehn) // And so on....build(); // Creates the map!// Create an empty mapMapString, Integer map2 Maps.builder().build();}} 在上面的代码中一旦我们开始通过调用key(1)使用Integer构建器将仅接受作为Integer实例的其他键。 值也是如此。 一旦我们调用value(one) 就只能使用作为String实例的对象。 例如如果尝试写入value(42)而不是value(two) 我们将立即在IDE中看到错误。 另外当我们使用代码完成功能时大多数IDE都将能够自动选择合适的候选对象。 让我详细说明一下 初次使用 该构建器是使用Maps.builder()方法创建的返回的初始视图允许我们调用 build()生成一个空的Map 如上面的第二个“空地图”示例 key(K key) 该密钥将密钥添加到构建器并确定所有后续密钥的类型 K例如上述key(1) 一旦调用了初始key(K key) 该构建器的另一个视图将显示为仅公开 value(V value) 它向构建器添加一个值并为所有后续值如value(one) 决定类型 V 注意由于键和值的数量不同 build()方法不会在此状态下公开。 编写Map.builder().key(1) .build() ; 完全是非法的因为没有与key 1关联的值。 后续用法 现在已经确定了键和值类型构建器将根据要调用的key()或value()在显示的两个交替接口之间进行切换。 如果调用key() 则公开value() 如果调用value() 则公开key()和build() 。 建造者 一旦确定类型这是构建器使用的两个交替接口 public interface KeyBuilderK, V {ValueBuilderK, V key(K k);MapK, V build();}public interface ValueBuilderK, V {KeyBuilderK, V value(V v);} 请注意一个接口如何返回另一个接口从而导致暴露的交替接口无限流动。 这是使用交替接口的实际构建器 public class MapsK, V implements KeyBuilderK, V, ValueBuilderK, V {private final ListEntryK, V entries;private K lastKey;public Maps() {this.entries new ArrayList();}Overridepublic ValueBuilderK, V key(K k) {lastKey k;return (ValueBuilderK, V) this;}Overridepublic KeyBuilderK, V value(V v) {entries.add(new AbstractMap.SimpleEntry(lastKey, v));return (KeyBuilderK, V) this;}Overridepublic MapK, V build() {return entries.stream().collect(toMap(Entry::getKey, Entry::getValue));}public static InitialKeyBuilder builder() {return new InitialKeyBuilder();}} 我们看到实现类实现了两个交替接口但是仅根据调用key()或value()才返回其中一个接口。 我通过创建两个初始帮助类来“欺骗”一点这两个初始帮助类负责尚未确定键和值类型的初始阶段。 为了完整起见下面还显示了两个“欺诈”类 public class InitialKeyBuilder {public K InitialValueBuilderK key(K k) {return new InitialValueBuilder(k);}public K, V MapK, V build() {return new HashMap();}}public class InitialValueBuilderK {private final K k;public InitialValueBuilder(K k) {this.k k;}public V KeyBuilderK, V value(V v) {return new MapsK, V().key(k).value(v);}} 后面的类以与主构建器类似的方式工作即InitialKeyBuilder返回InitialValueBuilder 而InitialValueBuilder创建一个类型化的构建器该生成器可以通过交替返回KeyBuilder或ValueBuilder来无限期使用。 结论 当您需要类的类型安全和上下文感知模型时“ 交替接口暴露”方案很有用。 您可以使用此方案为您的类制定和实施许多规则。 这些类的使用将更加直观因为上下文相关的模型及其类型一直传播到IDE。 该模式还提供了更强大的代码因为在设计阶段就很早就发现了潜在的错误。 我们将在编码时看到潜在的错误而不是失败的测试或应用程序错误。 翻译自: https://www.javacodegeeks.com/2016/03/java-8-type-safe-map-builder-using-alternating-interface-exposure.html
http://www.zqtcl.cn/news/387852/

相关文章:

  • 本地计算机做网站服务器做算命网站
  • 广州网站建设公司万齐网络科技做围棋题网站
  • 运动服装商城网站建设引流推广
  • 武进区城乡建设局网站聊城商城网站建设
  • 做网站开发赚钱吗网站建设电子书资料
  • wordpress 回收站在哪个文件夹建站之星模板好吗
  • 怎么用dw做博客网站天使投资平台官网
  • 淮安市网站建设crm网站
  • 门户网站主要特点和功能深圳地铁优化
  • 银川网站推广方式湖南建工交通建设有限公司网站
  • 知道网站域名怎么联系怎么创建自己的公司网站
  • 淘宝网站开发多少金额网站优化 福州
  • 百度推广让我先做虚拟网站后进一步优化落实
  • 好的网站建设启示汕头网页设计网站方案
  • 深圳网站制作开发免费精准客户软件
  • 网站超链接用什么南宁行业平台开发公司
  • 注册门户网站襄樊seo快速排名
  • 优秀的手机网站iis 设置此网站的访问权限
  • 用nat123做自己的网站深圳市建设工程质量检测中心官网
  • 网上做衣服的网站废旧网站哪个做的最好
  • 网站开发设置网页端口wordpress 知识库
  • 网站建设的方法有四种开发一款新闻app需要多少钱
  • 成都网站建站公司2023年防疫新政策
  • 17做网店一样的网站十大互联网培训机构
  • 中企网络科技建站施工企业oa办公系统
  • 成都网站推广公司排名淘宝商家网站建设
  • 平台网站建设报价网站建设企业蛋糕
  • 上海创意网站建设电子商务毕业设计网站建设
  • 如何让网站打不开 解析wordpress pdf检索
  • 网站建设大作业感想台州企业网站模板建站