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

常德市住房和城乡建设局网站wordpress seo教程

常德市住房和城乡建设局网站,wordpress seo教程,湖州网络推广公司,网站建设存在的问题及建议java中无法推断类型参数最近#xff0c;Oracle采用了一种新策略#xff0c;即每六个月发布一次新的语言版本。 该策略假定只有每个第3版都将提供长期支持或LTS。 快速说明#xff1a; 具有LTS的当前版本是Java 8#xff1b; Java 9仅应在2018年3月之前获得支持#xff0… java中无法推断类型参数 最近Oracle采用了一种新策略即每六个月发布一次新的语言版本。 该策略假定只有每个第3版都将提供长期支持或LTS。 快速说明 具有LTS的当前版本是Java 8 Java 9仅应在2018年3月之前获得支持因此已经结束。 Java 10支持到2018年9月; 具有LTS的下一个版本应该是Java 11该版本应该在2018年9月发布并且至少将支持到2023年9月。 Oracle Java SE支持路线图中的更多内容。 我们公司仍然没有采用Java 9但是现在看来完全跳过它并跳到下一个LTS可能是一个有效的选择。 除了Java本身还有很多其他问题例如Spring Boot Java版本等因此我们可能会谨慎行事。 尽管如此鉴于不可避免的更改我还是决定研究Java 10中的功能。看起来该版本中的主要功能是本地类型推断 。 我们都知道这种Java语法 ListUser list new ArrayListUser(); // or since Java 7 ListUser list new ArrayList(); 基本上局部类型推断可以替换为 // left side type is inferred from the right side and will be ArrayList var userList new ArrayList(); 这意味着代码的样板要少一些但是您需要更多注意变量和方法名因为var关键字不是不言自明的。 许多编程语言例如ScalaCGo当然还有Kotlin中的本地类型推断已经存在了很长时间。 在这方面Java一直处于落后地位现在已决定对其进行修复。 但是关于此的具体实现存在一些争议。 例如存在以下可能性 如Kotlin或Scala中那样 val用于局部常量而var用于变量 因为const和final已经在Java中保留了所以对于局部常量使用const或仅final作为变量对变量使用var 具有用于对变量常数和变种 最后变种 ; 利用let def或 ; 还有更多关于此的内容。 最终决定使语法更接近现有语法并允许var用于局部变量 final var用于局部常量因此上面显示的示例将在Java 10中运行。 但是替换并非总是那么简单。 例如 // example 1 - list is a ListUser type ListUser list new ArrayList();// example 2 - userList is an ArrayListObject type, so you lose type information var userList new ArrayList();// example 3 - userListFixed is an ArrayListUser type, so you keep type information var userListFixed new ArrayListUser(); 在示例二中在直接替换左侧的情况下编译器无法推断列表类型因此它将默认为Object。 当您尝试处理列表中的项目时它将使您绊倒。 局部类型推断很有用的一个例子是数据转换。 例如您想将一种类型的对象更改为另一种具有不同属性的对象并为此使用一个匿名类。 在Java 8中您只能在流作用域内执行此操作例如可以在流管道中访问新属性但不能在外部访问。 ListUser users Arrays.asList(new User(Elisabeth, Bennett, 20),new User(Jane, Bennett, 22),new User(Mary, Bennett, 18),new User(Kitty, Bennett, 17),new User(Lydia, Bennett, 15));users.stream().map(u -new Object() {String fullName u.firstName u.lastName;boolean canDrink u.age 18;}).forEach(u - {if (u.canDrink) {System.out.println( u.fullName is of age and can drink);} else {System.out.println(- u.fullName is not of age and cannot drink);}});/* Output will be* Elisabeth Bennett is of age and can drink* Jane Bennett is of age and can drink* Mary Bennett is of age and can drink* - Kitty Bennett is not of age and cannot drink* - Lydia Bennett is not of age and cannot drink*/ 在Java 10中可以在流管道之外使用新对象的转换列表。 ListUser users Arrays.asList(new User(Elisabeth, Bennett, 20),new User(Jane, Bennett, 22),new User(Mary, Bennett, 18),new User(Kitty, Bennett, 17),new User(Lydia, Bennett, 15));final var objects users.stream().map(u -new Object() {String fullName u.firstName u.lastName;boolean canDrink u.age 18;}).collect(Collectors.toUnmodifiableList());// do something with the users...System.out.println();for (var o : objects) {if (o.canDrink) {System.out.println( o.fullName is of age and can drink);} else {System.out.println(- o.fullName is not of age and cannot drink);}} 因此流关闭结束后仍然可以访问映射的对象属性。 但是由于这是局部类型推断因此您将无法在当前方法的局部范围之外使用它们。 Var关键字在方法参数声明中不起作用因此您不能将var传递给另一个方法。 因此拥有var并不意味着Java神奇地变成了动态类型。 它仍然是静态键入的只是添加了一点语法糖并且仅在编译器可以推断类型的地方使用。 对我来说这表明Java一直在努力前进但是由于试图保持其历史根源使向后兼容而不是创新成为其主要优先事项而受到极大阻碍。 翻译自: https://www.javacodegeeks.com/2018/04/local-type-inference-in-java-10-or-if-it-quacks-like-a-duck.htmljava中无法推断类型参数
http://wiki.neutronadmin.com/news/254006/

相关文章:

  • 企业注册网站做网站卖高仿
  • 棋牌游戏网站怎么做网站模板50元
  • 同域名网站改版需要把之前网站里的文章都拷贝过来吗?北京网站制作公司兴田德润在那里
  • 百城建设提质工程网站国外wordpress移动主题
  • 无锡网站维护全国最大机械采购平台
  • 网站开发报价模版佛山行业网站建设
  • 怎样做影视网站功能型网站
  • 上海网站建设服务请教个人主页网站怎么做啊
  • 网站建设联系电话湖北城乡和建设官方网站
  • 如何做网站泛目录解析page编辑wordpress
  • 长春站建了多少年网站开发技术三大件
  • 做网站的时候遇到的问题网站模板更换
  • 六枝做网站腾讯朋友圈广告怎么投放
  • 网站网页设计收费免费软件库合集软件资料网站
  • 技术支持:佛山网站建设wordpress滑动图片
  • wordpress大型网站温州城市建设投资集团网站
  • 怎么去建设微信网站泰兴市住房和建设局网站
  • 网站后台编辑器无法显示网站建设需求确定
  • 网站建设与管理内容找外包公司做个网站多少钱
  • 网站建设项目创业计划书网站建设网络营销平台 云搜系统
  • 广东省中山市网站新闻头条新闻
  • 做搜狗pc网站优化排消息网站怎么做
  • 沙漠风网站建设个人网站名称备案
  • 怎么查看网站是什么软件做的网站浏览历史能恢复吗怎么设置
  • 微信公众号 网站开发四川成都建设网
  • 帮人做网站赚钱吗ftp上传网站全教程
  • 鹿班设计网站官网成都必去十大网红景点
  • 网站运营是做什么的网站建设手机站
  • 网站制作公司深圳网址导航网站怎样做
  • 搜索引擎网站推广如何优化长春网站制作都找源晟27