java - 带类型参数的接口(interface)有什么用?

标签 java generics interface

带类型参数的接口(interface)有什么用?它们的真正用途是什么?我的理解正确吗? 假设我有这个界面

public interface Moveable <Person>{
    void move(double x, double z);
}

这是否意味着只有类型为 Person 的对象才能使用/实现它?

最佳答案

这不是典型的模式,在您的情况下,类型参数没有做任何事情。这是一个更好的例子。

public interface Movable<T> {
    T move();
}

现在您的代码将返回实现者指定的类型,而不是您只是说移动总是返回对象或其他一些更通用的类。

编辑:

public MyMover implements Movable<Truck> {
    public Truck move(){
        return new Truck();
    }
}

您不能真正将接口(interface)的实现者限制为特定类型。你可以限制它by package如果你想。也许抽象类更适合你。

关于java - 带类型参数的接口(interface)有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355702/

相关文章:

java - Redshift 的分隔符转义边缘情况

java - 将字符串识别为输入,如果不是整数则抛出异常

c# - 触发一个事件而不订阅它

android - 从适配器调用 fragment 方法

java - 如何在不四舍五入的情况下显示最多 2 位小数?

java - 为什么 Java 允许捕获应用程序不应该处理的错误类型?

C# List<object>.RemoveAll() - 如何删除列表的一个子集?

asp.net - 迭代 ASP.NET Web 服务提供的 JSON 对象列表

java generics - "extends"关键字 -> 不支持添加元素

java - 什么时候接口(interface)中的方法被 'both'覆盖并实现?