6

我希望用 Java 编写一个泛型类型安全的观察者。在 C++ 中,我可以通过使用 c++11 中的可变参数模板轻松地做到这一点,如下所示:

class Observer<typename... T>
{
    void update(T... args);
};

现在,在java中,我能做的最好的就是:

class Observer<T>
    {
        void update(T args);
    };

现在,更新不能像 C++ 那样采用不同类型的多个参数。有人可以建议解决这个问题吗?

提前致谢。

4

2 回答 2

4

如果所有参数都扩展/实现 T 你可以说:

class Observer<T>{
        void update(List<? extends T> args){}
}
于 2013-10-15T14:22:30.403 回答
0

唯一想到的是创建像元组这样的类,因此您不使用可变参数形式,而是预先对 args 进行分组。但是,这个答案很大程度上取决于使用场景。
没有一对一的模拟。

于 2013-10-15T14:24:49.117 回答