Type parameter

Type will be erased by compiler.

Compiler warning message:

Warning:(21, 13) non-variable type argument Int in type pattern A[Int] is unchecked since it is eliminated by erasure
    case a: A[Int] => println("Int" + a.getClass)
            ^
Warning:(22, 13) non-variable type argument scala.util.Try[Int] in type pattern A[scala.util.Try[Int]] is unchecked since it is eliminated by erasure
    case a: A[Try[Int]] => println("TryInt" + a.getClass)
            ^

Output:

Intclass AInt
Intclass ATryInt

Code:

import scala.util.Try

trait A[T] {

}

class AInt extends A[Int] {

}

class ATryInt extends A[Try[Int]]

object Test extends App {
  val a = new AInt()
  val aTryInt = new ATryInt()

  p(a)
  p(aTryInt)

  def p[T](a: A[T]) = a match {
    case a: A[Int] => println("Int" + a.getClass)
    case a: A[Try[Int]] => println("TryInt" + a.getClass)
  }
}
时间: 2024-12-29 16:04:57

Type parameter的相关文章

(转)java.lang.RuntimeException: Missing type parameter

java.lang.RuntimeException: Missing type parameter (2015-04-07 14:35:51)   分类: 技术 程序中用到了gson的new typeToken,结果打包成apk发布时,发现抛出异常,但不通过打包apk时发现一切正常,百思不得其解,最初怀疑没有将gson-1.7.1.JAR打包进去,后来经过测试发现gson的其他方法经过打包也能正常运行,最后上网找了2天,终于在google gson论坛中找到了解决方法. 在 proguard-

Realm 处理List<String> 问题 Type parameter 'java.lang.String' is not within its bound; should implement 'io.realm.RealmModel

public class InitAppBean extends RealmObject { private String sapling; private String logistics; private RealmList<DeliverTypeListBean> deliverTypeList; private RealmList<RealmString> countryList; public String getSapling() { return sapling; }

Inferred type &#39;S&#39; for type parameter &#39;S&#39; is not within its bound

springboot报错内容:Inferred type 'S' for type parameter 'S' is not within its bound; should extends xxxxxx /* * 根据id查询 */ @GetMapping("/student/{id}") public Student findById(@PathVariable("id") Integer id){ return studentRespository.findO

android &quot;Missing type parameter&quot; 错误

最近在做android应该的时候出现这个问题,分析了一下日志,发现是在gosn解析的时候会出现,而且出现的时候很诡异.于是去网上找相关资料. 发现这个问题还是比较常见的,原来是发布版本和非正式发布版的apk的代码内部变量会进行混淆.而gosn是调用的反射机制,当实例化变量的时候会出现错误. 解决办法 在 proguard-project.txt 文件中添加 -dontobfuscate -dontoptimize

Beginning Scala study note(8) Scala Type System

1. Unified Type System Scala has a unified type system, enclosed by the type Any at the top of the hierarchy and the type Nothing at the bottom of the hierarchy. All Scala types inherit from Any. # Using Any, Book extends AnyRef, and x is an Int that

你不知道的JAVA系列一 Type Inference

在正式开讲之前先容许我说下写这篇文章的故事背景.前几天我们的production下的一个tool突然莫名其妙的报错,那部分功能已经很久没有改动过了,按理说是不应该出现问题的,代码在做反射调用method的时候出现了ClassCastException.我先是以为可能是什么小问题就把任务分给我同事了,他分析下来告诉我不知道什么问题,莫名其妙的就突然抛异常了:那找不到问题我们就只能怪JAVA Compiler了  原来最近我们做了一次JDK的升级,从7升级到了8,起先以为是reflect的Metho

Scala 上界 和 下界_Upper Type Bounds_Lower Type Bounds

Type Bounds When defining a parameterized type or method, it may be necessary to specify bounds on the type. For example, a parameterized type might assume(假定) that a particular type parameter contains certain methods. Upper Type Bounds-上界 S <: T 这是类

深入理解Java之泛型

1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现. 在Java 5之前,ArrayList的实现大致如下: 1 public class ArrayList { 2 public Object get(int i) { ... } 3 p

微信支付——开发体系

有了微信支付方面的一些前期准备以及理论知识后,我们可以开始打造我们的微信支付平台了. 商户向微信公众号提供企业以及银行账户资料,商户功能审核通过后,可以获得以下账户包括财付通的商户账户,用于公众号支付 appId 公众号身份的唯一标识. paySignKey 公众号支付请求中用于加密的密钥Key,可验证商户唯一身份,PaySignKey对应于支付场景中的appKey值. appSecret 除了支付请求需要用到paySignKey,公众平台接口API 的权限获取所需密钥Key,在使用所有公众平台