在进行通用转换时,在generics方法中捕获ClassCastException

假设我有一个方法 @SuppressWarnings(“unchecked”) public T getNumber() { try { return (T)number; } catch (ClassCastException e) { return null; } } 假设number是Integer一个实例,调用方法就像 Float f = getNumber(); 结果成为ClassCastException 。 我知道(不知何故)这是因为类型擦除,但有人可以提供更深刻的解释为什么exception升级到赋值级别并且不能在方法内捕获? 注意:我确实有版本public T getNumber(Class classT) ,它检查public T getNumber(Class classT)中的类型,但希望摆脱传递classT并停止想知道上述问题。

无论我尝试什么,Vaadin Table都不会更新

我使用Vaadin(6.7.4),这个表(它在模态窗口上)不更新视图。 首先它是使用生成的列创建的,但我读到它有表更新的问题,所以我切换回普通表,但仍然没有刷新。 通过面板上的按钮单击事件调用Updatedata final Table table = new Table(); final IndexedContainer ic=new IndexedContainer(); public createTable(){ table.setImmediate(true); table.setEnabled(true); ic.addContainerProperty(“Name”, String.class, null); ic.addContainerProperty(“Edit”, Button.class, null); ic.addContainerProperty(“Delete”, Button.class, null); table.setContainerDataSource(ic); } public void addItems(Table table) { for (String s : createdNames) { ic.addItem(s); ic.getItem(s).getItemProperty(“Name”).setValue(s); ic.getItem(s).getItemProperty(“Edit”).setValue(“Edit”); ic.getItem(s).getItemProperty(“Delete”).setValue(“Delete”); } } public void updateData() { IndexedContainer c=(IndexedContainer) table.getContainerDataSource(); c.removeAllItems(); c.addItem(“myname”); c.getContainerProperty(“myname”, […]

Java Logger:无法在logger.properties文件中设置日志级别

我有一个java项目,我使用maven来构建。 我在我的项目中使用java.util.logging.Logger ,并希望使用logger.properties文件(而不是命令行)进行配置。 我创建了一个logger.properties文件,如下所示: handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler .level=WARNING java.util.logging.SimpleFormatter.format=[%4$s] %5$s %n java.util.logging.config.file=”../../results/api.log” 以下是我遇到的问题: java.util.logging.SimpleFormatter.format正在工作 。 当我在这里更改格式时,我会在项目中立即看到更改。 所以我知道至少我正在导入文件。 .level不工作 。 我已经尝试将其更改为info , finest , warning等,但在我更改之后,即使我告诉它不显示INFO,我仍然会看到所有的INFO消息。 java.util.logging.config.file无效 。 我有点期望这个不起作用,因为它是一个相对的路径。 任何人都知道我如何解析属性文件中的相对路径名? 解 我需要将.level移动到顶部,如下所示: logger.properties .level=WARNING handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler java.util.logging.SimpleFormatter.format=[%4$s] %5$s %n 然后,为了将结果保存到“api.log”,我在我的代码中执行了此操作: RequestHelper.java import org.apache.commons.io.FilenameUtils; public class RequestHelper { private static final Logger LOGGER = Logger.getLogger( RequestHelper.class.getName() ); protected RequestHelper() […]

如何在Spring Boot中获取DispatcherServeletInitializerfunction

我们希望将项目迁移到Spring Boot。 但是,目前还不清楚如何在Spring Boot中复制AbstractAnnotationConfigDispatcherServletInitializer的function? public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class[] getRootConfigClasses() { return new Class[]{AppConfig.class}; } @Override protected Class[] getServletConfigClasses() { return new Class[]{WebappConfig.class}; } @Override protected void customizeRegistration(ServletRegistration.Dynamic registration) { registration.setAsyncSupported(true); } @Override protected String[] getServletMappings() { return new String[]{“/”}; } @Override protected Filter[] getServletFilters() { DelegatingFilterProxy shiroFilter = new DelegatingFilterProxy(“shiroFilter”); […]

如何在Maven多模块Spring Web应用程序中自动挂载类?

我正在开发包含Maven多模块项目的应用程序。 当从另一个模块尝试@Autowire服务类时,我得到java.lang.NoClassDefFoundError:这个项目的独特之处在于两个Web模块之间的依赖关系。 家长项目 的pom.xml com.test.simple-project simple-parent pom module-x module-y org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.5 1.5 模块X. 的pom.xml module-x ${project.groupId} simple-parent war … maven-eclipse-plugin 2.9 org.springframework.ide.eclipse.core.springnature org.springframework.ide.eclipse.core.springbuilder true true org.apache.maven.plugins maven-compiler-plugin 2.5.1 1.6 1.6 -Xlint:all true true org.codehaus.mojo exec-maven-plugin 1.2.1 org.test.int1.Main package com.test.module-x.service; @Service(“userService”) public class UserServiceImpl implements UserService { } 模块Y. 的pom.xml module-y ${project.groupId} simple-parent ${project.version} […]

使用twitter4j在Oauth中出现问题

这是我在调用twitter.getOauthRequestToken(callbackUrl) 。 我添加了正确的消费者密钥和消费者秘密。 401:Authentication credentials (https://dev.twitter.com/docs/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync. Desktop applications only support the oauth_callback value ‘oob’ /oauth/request_token 我多次调试代码,并在上面调用之前找到了所有凭据。 任何使用过twitter4j的人都能指出问题吗? 或者我应该使用另一个oauth库? 有什么建议么?

java可以系统输出导致内存不足的问题

这是一个理论问题。 可以在java applet上大量出现系统,导致applet内存不足吗? 如果是,那么删除跨多个文件的多个sysout的简单解决方案是什么?

JUnit插件测试忽略Eclipse Neon中的目标平台

我有一些问题让JUnit插件测试使用Eclipse Neon M7工作,我真的很喜欢那些使用测试的人的输入(必须有人 ,对吧?)。 每当我开始在Eclipse Luna中运行的测试(但在Mars中没有 ,我认为是一个bug)并继续使用Tycho时我得到以下exception: !SESSION 2016-05-11 10:25:41.456 ———————————————– eclipse.buildId=unknown java.version=1.8.0_73 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework arguments: -version 3 -port 60297 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname org.eclipse.jdt.junit4.runtime -classNames org.acme.test.test.core.ActivatorTest -application org.eclipse.pde.junit.runtime.uitestapplication -testApplication org.eclipse.ui.ide.workbench -testpluginname test.core Command-line arguments: -os win32 -ws win32 -arch x86 -consoleLog -version 3 -port 60297 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname […]

什么是Spring Framework中的EJB替代方案

我试图学习Spring Framework,之前我曾经用EJB创建应用程序 [Web services]->[Business Layer]->[DAO Layer] | [数据库] 以下方式 WebServices :使用Jersey和url mappings Restful API,支持JSON和XML格式( news/list.json , news/list.xml )。 一旦端点(url-mapped-method)收到请求,它就会通过查找(远程,本地)转发到相关的EJB。 EJB处理每一件事,应用业务规则并将结果作为DTO(数据传输对象)返回,然后Service将结果转换为所需的格式(JSON,XML) 业务层 :在EJB使用remote和local接口实现的业务层(Facade),这些EJB可以调用其他EJB。 WebService层(和/或Timer服务和MDB)也可以调用任何EJB)。 对于与计时器服务相关的function,我使用了EJB Timer Service ,而Message使用了Message Drive Bean和拦截器来进行日志记录和审计。 DAO Layer :所有与数据库相关的函数(添加,编辑,删除,搜索)使用EntityManager编写JPA/Hibernate (实体bean和HQL)。 无缝事务支持,每个EJB的方法(基于查询)调用被视为一个单独的事务,DAO层的调用方法是同一事务的一部分(假设没有提供额外的配置)。 在单个事务中执行多个操作如果一个db操作失败,则所有其他操作将自动回滚。 每个表都映射为具有关系等的实体类。 我曾经在Spring MVC但是无法正确地映射/理解上面的架构我对AOP有点了解并且我认为它是拦截器的完美替代品(或者至少它对我有用) 现在我的问题是如何在Spring框架中替换所有这些 ? 泽西(RestAPi)替代spring> Spring中的EJB替代方案(因为EJB支持远程处理,对方法的每次查找调用都被视为事务,对EJB方法的调用可以被拦截,并且它带有状态完全和无状态的风格)? Spring中的定时服务替代方案? Spring中的Message Drive Bean替代方案? 拦截器替代品是春季的AOP(根据我的经验,这符合我的目的) JPA(实体经理)在春季的替代方案?

我们是否需要关闭ExecutorService fixedThreadPool

我使用ExecutorService创建了threadpool,在我的应用程序中使用下面的代码调用供应商websrvice。 ExecutorService executor = Executors.newFixedThreadPool(getThreadPoolSize()); for (int i = 0; i < list.size(); i++) { Request ecpReq = list.get(i); thRespLst.add(executor.submit(new Task(ecpReq))); } 想要知道我们需要关注线程池或其他东西,基本上我不想在生产环境中挂线程。