Tag: generics生成

如何正确使用generics持有人

我正在尝试为我的应用程序中使用的不同对象创建一个Holder类,我最终得到的代码工作正常,直到某种程度上,构建器模式适用于可选字段,但我想这个持有者可以重构为接受任意数量的参数 package pojos; public class Holder { private final T t; private final R r; private final S s; private final U u; private Holder(final Builder builder) { this.t = builder.t; this.r = builder.r; this.s = builder.s; this.u = builder.u; } public T getField1() { return this.t; } public R getField2() { return this.r; } […]

我可以在java中使用方法链接而不执行不安全操作的抽象构建器类吗?

我正在尝试为一些构建器类创建一个抽象基类,这样我就可以轻松地在Builder实现之间重用代码。 我希望我的构建器支持方法链接,因此方法必须返回最具体类型的“this”实例。 我想我可以用generics来做这件事。 不幸的是,如果不使用不安全的操作,我就无法做到这一点。 可能吗? 下面是我如何尝试它(以及它如何工作)的示例代码。 我想避免在“foo()”中输入T(导致未经检查的警告),这可以吗? public class Builders { public static void main( final String[] args ) { new TheBuilder().foo().bar().build(); } } abstract class AbstractBuilder<T extends AbstractBuilder> { public T foo() { // set some property return (T) this; } } class TheBuilder extends AbstractBuilder { public TheBuilder bar() { // set some […]