java - 没有集合的泛型

标签 java generics

我有一个方法通常从列表中获取一个项目并具有以下签名:

myMethod(T item)

我想使用这个方法,但我知道我发送的是什么方法。

SpecificItem myItem = new SpecificItem();

myMethod((T) myItem);

这对我来说不太合适。这是错误代码的标志吗?

最佳答案

myMethod 在泛型类中定义,有点像:

public class MyClass<T> {
   T myItem;

   public void myMethod(T item) {
      // do Something with item
   }

   public T myOtherMethod() {
      myMethod(myItem);   // casting is not necessary
      return myItem;
   }

}

如果实例化此类,则将变量类型 T 替换为真实类型:

MyClass<SpecificItem > concreteClass = new MyClass<SpecificItem >();

如果您在此实例上调用 myMethod,则必须提供一个 SpecificItem,因为 SpecificItem 是此实例的通用类型。

(我不确定我的帖子是否回答了您的问题,请发表评论以便我改进)

关于java - 没有集合的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609374/

相关文章:

java - curl 命令行与 HttpURLConnection API 服务调用响应时间差异

java - Log4j2 自定义插件 - 使用 Maven Assembly Plugin 进行注释处理

c# - 一般将对象转换为 'real' 类型

generics - Kotlin 编译器的类型推断无法选择调用哪个方法(泛型有歧义)

java - 有没有办法以二进制形式显示 float ?

java - jsp不合逻辑的错误

ios - 以泛型类型数组作为参数的 Swift 编译器错误

Java 代码编译但产生 IllegalAccessError

java - 如何从传递的对象中检索值?

java - 打开数据库时Extrange空指针异常