美文网首页
Java 包含泛型方法签名的方法调用,如: Map buildH

Java 包含泛型方法签名的方法调用,如: Map buildH

作者: 架构师Javaspring | 来源:发表于2019-06-22 14:26 被阅读0次

今天在用Guava做cache的时候,发现guava中,有些方法会带有泛型的方法签名:

public CacheBuilder<K, V> expireAfterAccess(long duration, TimeUnit unit) {

    checkState(

        expireAfterAccessNanos == UNSET_INT,

        "expireAfterAccess was already set to %s ns",

        expireAfterAccessNanos);

    checkArgument(duration >= 0, "duration cannot be negative: %s %s", duration, unit);

    this.expireAfterAccessNanos = unit.toNanos(duration);

    return this;

  }

public <K1 extends K, V1 extends V> LoadingCache<K1, V1> build(

      CacheLoader<? super K1, V1> loader) {

    checkWeightWithWeigher();

    return new LocalCache.LocalLoadingCache<K1, V1>(this, loader);

  }

但是,直接使用CacheBuilder的时候,并没有直接指定K,V泛型,所以很好奇它是如何调用的,于是乎做了一个尝试:

有这么一个方法:

public <K, V> Map<K, V> buildHashMap() {

        return new HashMap<K, V>();

}

尝试调用它:

    @Test

    public void test() {

        Map<Object, Object> map = this.buildHashMap();//如果你使用的是idea,点击alt+enter,会自动生成 "Map<Object,Object> map ="这一段.

    }

换一种方式:

    @Test

    public void test() {

        Map<Integer, String> map = this.<Integer, String>buildHashMap();

    }

好了,可以自动补全并推断出 ,实例map的类型.

相关文章

  • Java 包含泛型方法签名的方法调用,如: Map buildH

    今天在用Guava做cache的时候,发现guava中,有些方法会带有泛型的方法签名: public CacheB...

  • 《java编程思想 泛型》鸭子类型

    静态类型检查 java泛型的缺点 java泛型是通过擦除实现的,导致只能调用Object类的方法,如果需要调用其他...

  • java 泛型

    1,如何实例化泛型 2,如何获取java中的泛型类型 调用(通常在构造方法中调用):

  • Java 语法糖及实现

    Java 中的泛型 泛型是什么 泛型,即“参数化类型”,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。 ...

  • Java 泛型

    Java 泛型 什么是泛型 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递...

  • 记录java一些东西

    1.调用泛型方法 使用.<类型>函数方法的方式调用泛型方法,而此<类型>是可以省略的。 2.泛型类型的定义 定义类...

  • 泛型

    泛型类 是在实例化类的时候指明泛型的具体类型 泛型方法 是在调用方法的时候指明泛型的具体类型 泛型方法中是用...

  • Java基础(1)泛型

    1、泛型:泛化的类型,可以在调用时自己定义的一种参数类型; 2、泛型方法:public T 方法名是泛型方法...

  • 泛型程序

    一、泛型类 二、泛型方法 三、 类型变量的限定 方法内部有需要创建对象调用方法的,因为泛型类型变量T可以是任何对象...

  • ★13.泛型

    关于泛型 静态方法无法访问泛型的类型参数。(C++可以) Java泛型使用擦除实现,如运行时,List ,List...

网友评论

      本文标题:Java 包含泛型方法签名的方法调用,如: Map buildH

      本文链接:https://www.haomeiwen.com/subject/xyzmqctx.html