java - 以不同 ArrayList 类型作为参数的构造函数

标签 java android generics arraylist

我不是第一次遇到这种“奇怪”的情况了。我需要为我的类创建两个不同的构造函数:

public OpponentListAdapter(Context c, ArrayList<MyCustomObject> l){}

public OpponentListAdapter(Context c, ArrayList<String> l){}

因为根据 ArrayList 泛型的类型,我需要执行不同的操作。 但我有这个错误:

Method OpponentListAdapter(Context, ArrayList) has the same erasure >OpponentListAdapter(Context, ArrayList) as another method in type OpponentListAdapter

怎么了? 也许解决方案很简单,但目前我找不到什么好的解决方案!

最佳答案

两者都是ArrayList<String>ArrayList<MyCustomObject>具有相同的删除ArrayList 。因此,两个构造函数在运行时将具有相同的签名,因此会出现异常,因为那里有一个重复的构造函数。

如果您希望构造函数采用不同类型的ArrayList ,那么您可以使用无界通配符,如下所示:

public OpponentListAdapter(Context c, ArrayList<?> l) {}

这将适用于两个数组列表,或者使您的构造函数变得通用,并给出类型参数。

关于java - 以不同 ArrayList 类型作为参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556925/

相关文章:

java - 使用java应用程序模拟按键

Java - 使用 JavaMail 发送和接收 S/MIME 消息

android - 尝试使用 p4a 编译 "Hello World"Kivy 项目

java泛型类转换

java - 使用 MaskFormatter 格式化字符串抛出 "Invalid character"异常

c# - 使用 visual studio 2010 将 java 项目转换为 c#

android - 在解析 xml 时,在一些以 read more 结尾的字行之后获取的不是完整数据

java - 如何在 Android Studio 中打印到控制台?

swift - Swift 3 中通用协议(protocol)类型的变量

generics - 为什么 rust 只允许数组大小的独立常量?