在Java中是否有可能用太多的泛型类型来分解类?

在Java中是否有可能用太多的泛型类型来分解类?,java,Java,有时我写了一些泛型类型太多的类 class C<T1, T2, T2, T3, T4, T5> { ... } C类{ ... } 有打破这种模式的一般策略吗?创建一组替代类:C1,C2,C3,等等 在使用C的不同地方,您最终将引用这些类的各个子集。而不是: C<String, Integer, Whatever, Thing, ...> x; cx; 您将有: C1<String> x; C2<Integer> y; C3<Wha

有时我写了一些泛型类型太多的类

class C<T1, T2, T2, T3, T4, T5> { 
...
}
C类{
...
}

有打破这种模式的一般策略吗?

创建一组替代类:
C1
C2
C3
,等等

在使用
C
的不同地方,您最终将引用这些类的各个子集。而不是:

C<String, Integer, Whatever, Thing, ...> x;
cx;
您将有:

C1<String> x;
C2<Integer> y;
C3<Whatever, Thing> z;
c1x;
c2y;
c3z;

一个有那么多类型参数的类很可能是一个分解的例子。

是的,它被称为分解。分解方式取决于软件的需求。据我们所知,您甚至可能不需要某些泛型类型参数。您应该提供更多关于您的情况的上下文这里有一个线索:您说它有太多的类型参数。如果你认为一个刚写完的类——这在你脑海中仍然是新鲜的——有太多的类型参数、太多的方法、太多的实例变量、太多的状态、太多的代码行等等。,那么它可能有太多的东西让其他人想看。虽然我同意你的回答,但我认为你需要在这里给出更多的解释。泛型允许方法签名更改解决方案没有更改的内容。例如,OPs可能需要一个
getX
方法,并且需要知道它的签名。