将一个通用类标注为JSF托管的bean

4

我遇到了以下类型的代码:

@ManagedBean
@SessionScoped
SomeClass<T> {
    ... blah-blah
}

由于框架将其实例化为一个没有类型信息的通用 SomeClass 对象,您是否看到此类代码的任何好处?或者您会将其归类为代码异味吗?


你在哪里找到这个的? - Ian McLaird
该代码是在NetBeans中为一个过去的项目编写的。 - Marcus Junius Brutus
1个回答

7

泛型是编译时的语法糖(因此在运行时完全不存在)。JSF使用反射手段在运行时实例化bean。因此,这绝对是代码异味。仅当SomeClass是托管bean继承自的基类(但本身并不是托管bean)时才有意义。

例如:

public abstract class CrudBean<T extends SomeBaseEntity> {
    private List<T> entities;
    // ...
}

并且

@ManagedBean
public class ProductsBean extends CrudBean<Product> {
    // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接