我怎样才能做到这一点:
class Foo {
public static Foo get() throws Exception {
ClassLoader cl = new URLClassLoader(new URL[]{"foo.jar"}, null); // Foo.class is in foo.jar
return (Foo)cl.loadClass("Foo").newInstance(); // fails on class cast
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是让JVM从cl中考虑Foo实例,就好像它是来自执行代码的类加载器的Foo实例一样.
我见过这些方法,对我来说都没有好处(上面的例子是玩具示例):
这段代码使我感到恼火,有时它起作用,而另一些时候却不起作用!
NamedQuery :(名称=“ User.findByLogin”,查询=“从用户u在哪里选择u.login =:login”)
public User findByLogin(String login) {
Query query = em.createNamedQuery("User.findByLogin");
query.setParameter("login", login);
try {
return (User) query.getSingleResult();
} catch (javax.persistence.NoResultException ex) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
错误使我发疯!
Avertissement:EJB5184:在EJB UserFacade上调用期间发生系统异常,方法:public dz.admin.entity.User dz.admin.service.UserFacade.findByLogin(java.lang.String)Avertissement:javax.ejb.EJBException .. .. 由以下原因引起:java.lang.ClassCastException:dz.elit.admin.entity.User无法转换为dz.elit.admin.service.UserFacade.findByLogin(UserFacade.java: 45)