gpt4 book ai didi

java - 了解泛型以及类型检查的工作原理

转载 作者:太空狗 更新时间:2023-10-29 15:55:30 25 4
gpt4 key购买 nike

通用集合中的数据类型检查是如何发生的?例如,看看下面的 ArrayList:

ArrayList<String> r1 = new ArrayList<String>(); 
r1.add("4");
r1.add("1");
r1.add("2");
r1.add("3");

ArrayList<String>怎么样了?链接到方法 add() ?如果我要创建自己的非集合类,我该如何绑定(bind)泛型参数以确保进行严格的类型检查?

我在 Android 中使用 AsyncTask 类观察到的另一个示例:

private class SomeAsyncTask extends AsyncTask<String, Integer, Long> {

其中 String 指的是输入,Integer 指的是进度,Long 指的是响应。这个映射在哪里完成?我如何创建我自己的泛型类以及我在哪里定义这个映射?

最佳答案

在我看来,泛型是一个过于宽泛的主题,无法作为回应得到很好的涵盖。我建议您首先查看 Oracle 的教程 (here),了解您需要的所有信息。

也就是说,作为快速回答,.add()方法,根据 android documentation , 采用通用参数 E ,这与创建列表时指定的参数相同,在您的情况下这是一个字符串。

其次,要创建自己的泛型类,就像这样做一样简单:

public MyClass<T>
{
private T myT;

public void set(T t)
{
this.myT = t;
}

public T get()
{
return this.myT;
}
}

在上面的例子中,T引用泛型参数。该参数在您实例化类时设置,例如 ... new MyClass<String>(); .

关于java - 了解泛型以及类型检查的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com