【发布时间】:2019-12-11 10:21:43
【问题描述】:
我有一个非常通用的重型类,我正在测试不同的解决问题的方法,并且这个类在很多不同的地方使用,每次我更改类型参数的数量时,我都必须在我使用该类型的任何地方修复错误,即使在哪里我不使用该类通用性
public class HeavyGen<TYPE1, TYPE2, TYPE3, ETC>{...}
//now anywhere else i have to do either this and refactor my code at each
//change in the number of type parameters
public HeavyGen<?,?,?,?> func(){...}
//or this but @SupressWarning seem like a dirty fix
@SupressWarning
public HeavyGen func(){...}
那么:有没有办法能够改变HeavyGen的类型参数的数量,而不必在不使用泛型的地方重构代码?
我的想法:
使用将“”“封装”“”类型参数的类类型,如
TypeBag<TYPE1,TYPE2,TYPE3,ETC>ans 然后使用Container<BAG extends TypeBag>,但它似乎不起作用由于这些类型参数主要在类中使用,因此可以对方法类型参数进行一些技巧来传递它们。到目前为止我也没有成功。
1234563 /p>
【问题讨论】:
-
如何保持 Container<...> 中类型参数的数量受到限制/控制? (aka no mass refactoring later) -> 请解释一下你所说的大规模重构是什么意思,你是什么意思in control,通过代码控制它们还是简单地通过javadoc等?跨度>
-
@LinosaysReinstateMonica 我的意思是,如果我需要更改 Container 的类型参数,在任何我使用 Container 类型的地方(例如,对于函数返回或参数,不需要这些类型)我都会有更改该函数的代码以通过控制来修复它的类型参数,我的意思是我不必这样做
-
好吧,你不会对社区反对它感到惊讶。你的描述太乱了,真的无法理解你想要什么。 要么描述你的非常原始的问题(没有花哨的东西,也许这是一个xy问题),或者提取 非常技术核心 您的问题,并使其尽可能简单。现在您谈论的事情太多了,但是在非常详细的技术层面上。整个混乱是不可能理解的。
-
@HonzaZidek 哦,我明白你的意思了。我编辑了我的问题,希望现在更好
-
您的最后一次编辑很好!