有没有办法减少多个类型的参数?

RL:

我有一个非常通用的重载类,我在其中测试问题的不同方法,并且该类在许多不同的地方使用,并且每次更改类型参数的数量时,我都必须在所有使用该类型的地方都修复错误,即使我不使用该类型该类的通用性

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 then use Container<BAG extends TypeBag>,但似乎不起作用

  • 由于这些类型参数主要在类内部使用,因此请对方法类型参数进行一些技巧来传递它们。到目前为止,我也没有设法使其正常工作。

  • 有一个嵌套的类继承系统(例如<CHILD extends Container> CHILD.Inner),但是Java似乎也不喜欢(我想得越多,我越喜欢能够做到这一点:D)

香蕉:

您可以简单地重命名Container<...>AbstractContainer<...>并从中提取非通用Container接口:

public interface Container {
    // put non-generic methods here
}
public abstract class AbstractContainer<...> implements Container {
    // put generic methods here
}

现在,客户端代码可以在Container不携带泛型的情况下使用,并且实现可以扩展,AbstractContainer<...>并且仍然能够使用/实现泛型方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法在Firebase中减少请求?

有没有办法减少句子间距?

有没有办法减少这种情况?

有没有办法减少重复?

有没有办法减少 IF 语句的数量?

有没有办法减少这个带宽?

有没有办法使Haddock呈现类型参数方法的每个参数的文档?

有没有办法记录功能参数的参数?

有没有办法让 TypeScript 根据调用参数推断函数返回值的类型?

有没有办法接受Kotlin中类型A或B的参数?

有没有办法在Java中的列表中提取列表的类型参数?

有没有办法描述/类型提示功能参数的内容?

有没有办法为参数指定各种类型

有没有办法找到Java中模板(通用)参数的类型?

有没有办法用宏来捕获函数定义的参数类型?

打字稿有没有办法推断依赖于输入参数的类型?

有没有办法从非静态方法获取参数类型?

有没有办法根据模板参数的类型在不同的类实现之间进行选择?

有没有办法在参数中转换解构道具的类型?

有没有办法对相同类型的参数进行分组以使代码整洁?

有没有办法在 Python 中参数化自定义类型?

有没有办法根据我得到的是单个还是多个模板参数来声明类型别名?最好没有专业

有没有办法将参数传递给optuna中的多个作业?

有没有办法在接口 [Golang] 中传递多个参数?

有没有办法总结或浓缩多个参数的 TypeError 检查

有没有办法使函数成为参数?

define:有没有办法扩展参数?

有没有办法让Typescript使用默认参数?

有没有办法让RoutePrefix以可选参数开头?