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

包头全网营销网站建设辽宁好的百度seo公司

包头全网营销网站建设,辽宁好的百度seo公司,手机软件开发平台,本地网站源码类型擦除问题处理报错日志描述问题描述报错解决其他方法方法一:TypeInformation方法二:TypeHint报错日志描述 报错日志: The generic type parameters of Collector are missing. In many cases lambda methods dont provide enough informa…

类型擦除问题处理

        • 报错日志描述
        • 问题描述
        • 报错解决
        • 其他方法
          • 方法一:TypeInformation
          • 方法二:TypeHint


报错日志描述


  • 报错日志:
The generic type parameters of 'Collector' are missing. In many cases lambda methods don't provide enough information for automatic type extraction when Java generics are involved
// 缺少“Collector”的泛型类型参数。在许多情况下,当涉及Java泛型时,lambda方法不能为自动类型提取提供足够的信息
  • 建议日志:
The return type of function 'main(TypeErasure.java:23)' could not be determined automatically, due to type erasure. You can give type information hints by using the returns(...) method on the result of the transformation call, or by letting your function implement the 'ResultTypeQueryable' interface.
// 由于类型擦除,无法自动确定函数“main(TypeErasure.java:23)”的返回类型
// 您可以通过对转换调用的结果使用returns(…)方法,
// 或者通过让函数实现“ResultTypeQueryable”接口来提供类型信息提示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JtORiDwq-1677631980609)(502811171606601bd005d4b1d50a246e.png)]



问题描述


  • Java 8 自身存在的问题:
    • 在使用Java APILambda 的时候,JVM 运行时会擦除类型(泛型类型)
      • Flink 无法准确获取到数据类型
      • 此时就需要我们手动指定类型
    • Scala 就很好的解决的这个问题,无需指定类型
  • 正常情况下编写Java: 会需要手动设置输入格式,和输出格式
source.flatMap(new FlatMapFunction<String, Object>() {})    // 输入格式 String,输出格式 Object
  • Java 使用 Lambda 表达式:
source.flatMap(()->{// 输入和输出格式都没有指定,java 8 无法做自动类型推断})
  • 需要手动指定类型:
source.flatMap(()->{// 所以需要手动指定类型},Types.类型)


报错解决


  • 解决方案:
    • 在Flink中经常使用的类型已经预定义在了 Types 中它们的 serializer/deserializer 和 Comparator 已经定义好了
    • Tuple 类型既可以使用 TypeHint 指定又可以使用 Types 指定
  • 问题代码:
SingleOutputStreamOperator<String> flatMap = source.flatMap((line, collect) -> {String[] words = line.split(" ");for (String word : words) {collect.collect(word);}});
  • 修改后: Types 方法
SingleOutputStreamOperator<String> flatMap = source.flatMap((line, collect) -> {String[] words = line.split(" ");for (String word : words) {collect.collect(word);}},Types.STRING);      // 指定类型
  • 其他案例:
SingleOutputStreamOperator<Tuple2<Object, Integer>> map = flatMap.map(word -> Tuple2.of(word, 1),Types.TUPLE(Types.STRING, Types.INT));
  • ps:简单易懂,我比较喜欢用这种




其他方法



方法一:TypeInformation

  • TypeInformation 是Flink类型系统的核心,是生成序列化/反序列化工具和 Comparator 的工具类
    • 同时它还是连接schema和编程语言内部类型系统的桥梁
  • 可以使用 of 方法创建 TypeInformation :
    • of(Class typeClass):从 Class 创建
    • of(TypeHint typeHint):从 TypeHint 创建

方法二:TypeHint

  • 由于泛型类型在运行时会被JVM擦除,所以说我们无法使用
    • TypeInformation.of(XXX.class) 方式指定带有泛型的类型
  • 为了可以支持泛型类型,Flink引入了 TypeHint
    • 例如我们需要获取 Tuple2<String, Long> 的类型信息,可以使用如下方式:
TypeInformation<Tuple2<String, Long>> info = TypeInformation.of(new TypeHint<Tuple2<String, Long>>(){});
// 或者
TypeInformation<Tuple2<String, Long>> info = new TypeHint<Tuple2<String, Long>>(){}.getTypeInfo();

下班…

http://www.mmbaike.com/news/101283.html

相关文章:

  • 沈阳网站建设方案策划seo优化中以下说法正确的是
  • 手机网站报价单模板下载百度热榜实时热点
  • 做电商哪几个设计网站比较好关键词排名点击软件怎样
  • 漯河市住房建设局网站个人开发app可以上架吗
  • 怎么做全网小说网站网络热词缩写
  • 阳江网站制作公司网站运营seo实训总结
  • 网站建站需要什么软件北京官网优化公司
  • 涂料 网站 源码宁波seo推广咨询
  • 怎么做企业网站建设象山seo外包服务优化
  • 公司要建立网站要怎么做网址申请注册
  • 怎样做公司网站介绍中国站长之家域名查询
  • 棋牌网站怎么做优化百度投稿平台
  • slpdz.wordpress.com百度seo发帖推广
  • 湛江网站建设的详细过程google手机官网
  • 什么网站排名做的最好昆明seo工资
  • 网站做的好是不是影响就大关键词优化怎么操作
  • 网站分辨率做多大seo技术代理
  • 那个网站可以接做网页私活游戏推广代理加盟
  • 做宴会有哪些素材网站短视频seo排名加盟
  • 郑州做网站外包的公司有哪些网络推广渠道和方式
  • 做一个招聘信息的网站_用什么做网站的软件重庆网站seo多少钱
  • 网站如何做生僻词引流0元入驻的电商平台
  • 微信开发公司哪家好英文seo推广
  • 天津几个区分别是网站优化的主要内容
  • 网站动画特效广告软文
  • 做网站原创要多少钱软件推广平台有哪些?哪个比较好
  • 环保网站建设公司排名网站做外链平台有哪些
  • 江干区网站建设湖南网站建设工作室
  • 商城网站建设策划书网络广告四个特征
  • 怎样做农产品交易平台网站网页设计基础