小编Ste*_*fan的帖子

自绑定泛型类型,具有流畅的接口和继承

我正在使用一个流畅的继承接口.我声明基类Constructor受到保护,所以你不能创建一个Foo <Bar>,它会在调用add()时导致ClassCastException.但我遇到了返回新Foo实例的静态方法的问题.

public class Foo<T extends Foo<T>> // if i change to extends Foo i only get warnings
{
        public static Foo<Foo> createFoo() // <-- error
        {
                return new Foo<Foo>(); // <-- error
        }

        protected Foo() {}

        public T add()
        {
                //...
                return (T)this;
        }
}

public class Bar extends Foo<Bar>
{
        public Bar sub()
        {
                //...
                return this;
        }
}
Run Code Online (Sandbox Code Playgroud)

这主要是Fluent Interfaces,Domain-specific language和Generics中的练习(个人而不是家庭作业),所以请不要问我需要它.

编辑:Eclipse错误

Bound mismatch: The type Foo is not a valid substitute for the bounded parameter <T …
Run Code Online (Sandbox Code Playgroud)

java generics inheritance fluent-interface

9
推荐指数
1
解决办法
2861
查看次数

为什么HashMap包含比在Sun JDK中获取更慢的键?(太阳的jdk-1.6.0.17)

为什么containsKey慢慢调用HashMap get呢?

测试:http://ideone.com/QsWXF(差异> 15%,在sun-jdk-1.6.0.17上运行)

java hashmap jdk1.6

8
推荐指数
1
解决办法
1万
查看次数

在JSF 1.1之后不推荐使用类型API变量解析器.请改用el-resolver

我们最近从WebSphere Portal v6.1升级到v7.0,在此过程中我们现在可以使用JSF 1.2.在Rad 8中创建一个新的Portlet项目会创建一个带有以下条目的faces-config.xml

<application>
    <state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
    <variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
</application>
Run Code Online (Sandbox Code Playgroud)

然后抱怨:在JSF 1.1之后不推荐使用类型API变量解析器.请改用el-resolver.

不幸的是,我无法在el-resolver使用的IBM页面上找到答案.

编辑:

System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());
Run Code Online (Sandbox Code Playgroud)

=>解析器:com.sun.faces.el.FacesCompositeELResolver@696e696e

在faces-config中添加条目

<el-resolver>com.sun.faces.el.FacesCompositeELResolver</el-resolver>
Run Code Online (Sandbox Code Playgroud)

无论是否删除变量解析器,都会导致:

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)
    ... 89 more
Run Code Online (Sandbox Code Playgroud)

与IBM的PMR开放......

java jsf websphere-portal ibm-rad ibm-jsf

6
推荐指数
1
解决办法
3618
查看次数

什么是方法ejbCreate的EJB 3.0版本

我想将一些旧的EJB 2.1代码迁移到EJB 3.0,但是在ejbCreate方法中有一些配置错误的处理.是否有该方法的EJB 3版本?

编辑:在EJB 2.x中,ejbCreate可能抛出CreateException.基于@PostConstruct等的文档,我不能再抛出任何已检查的异常.如果我现在无法使用EJB迁移代码,我该如何处理呢?

Edit2:前端专门处理CreateException,遗憾的是它被检查.

java java-ee ejb-3.0 ejb-2.x

4
推荐指数
1
解决办法
1万
查看次数