0

特定のパラメータ化された型が特定のメソッドを持つ必要があることをどのように指定できますか?

つまり、クラスがあり、クラスpublic class SparseMatrix<type>内のメソッド (addメソッド) の 1 つがそのメンバーの add メソッドを使用する必要がある場合type、メソッドを持つ必要があるようにするにはどうすればよいaddでしょうか? SparseMatrix が数値や文字列だけでなく、他の種類の追加可能なもの、さらには他の行列を処理できるようにする必要があります。

mulまた、メソッドとメソッドでも使用しsubます。

4

1 に答える 1

3

メソッドの存在に基づいてそれを行うことはできません。型は共通のインターフェイスまたはスーパークラスを実装する必要があります。例えば:

public interface Addable<T>
{
    T add(T lhs, T rhs);
}

それで:

public class SparseMatrix<T extends Addable<T>>

もちろん、既存の型 (数値、文字列) にそのインターフェイスを実装させることはできません。適用可能な独自のラッパー型を作成する必要があります。

于 2012-09-29T17:36:35.387 に答える