如何指定特定的参数化类型需要具有特定方法?
我的意思是:如果我有我的班级public class SparseMatrix<type>
,并且班级中的一个方法(add
方法)需要使用其成员的添加方法,我该如何制作它要求type
有add
方法吗?我需要我的SparseMatrix不仅可以使用数字和字符串,还可以使用其他类型的可添加的东西,甚至其他基质。
我也会在我的mul
和sub
方法中使用它。
答案 0 :(得分:3)
您不能仅仅基于方法的存在来实现 - 类型必须实现公共接口或超类。例如:
public interface Addable<T>
{
T add(T lhs, T rhs);
}
然后:
public class SparseMatrix<T extends Addable<T>>
当然,您无法使现有类型(数字,字符串)实现该接口 - 您必须编写自己的适用包装类型。