相当于C++;Java中的可变模板

相当于C++;Java中的可变模板,java,Java,我希望用Java编写一个泛型类型安全观察程序。在C++中,我可以用C++ 11的ValueDead模板轻松地完成它,如下: class Observer<typename... T> { void update(T... args); }; 类观察器 { 无效更新(T…args); }; 现在,在java中,我能做的最好的事情是: class Observer<T> { void update(T args); }; 类观察器

我希望用Java编写一个泛型类型安全观察程序。在C++中,我可以用C++ 11的ValueDead模板轻松地完成它,如下:
class Observer<typename... T>
{
    void update(T... args);
};
类观察器
{
无效更新(T…args);
};
现在,在java中,我能做的最好的事情是:

class Observer<T>
    {
        void update(T args);
    };
类观察器
{
无效更新(T参数);
};

现在,更新不能接受C++中不同类型的多个参数。有人能提出解决这个问题的办法吗


提前谢谢

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

class Observer<T>{
        void update(List<? extends T> args){}
}
类观察器{

void update(List唯一想到的是创建类,比如tuple,所以您不使用变量形式,而是事先使用group args。然而,这个答案很大程度上取决于使用场景。

没有一对一的模拟。

这只允许
列表
而不允许子类型。例如,
T
数字
;这个构造不允许
列表
作为参数。我想说
列表我真的不理解您的问题。为什么不使用
无效更新(T…args);
?在他的用例中,并非所有参数都必须具有相同的类型。