我注意到enums在编译膨胀总大小之后引入了许多额外的类文件(Class $ 1).它似乎附属于甚至使用枚举的每个类,并且这些通常是重复的.
为什么会发生这种情况,并且有一种方法可以在不删除枚举的情况下阻止这种情况
(问题的原因是空间对我来说是非常宝贵的)
编辑
在进一步研究这个问题时,每次在Enum上使用开关时,Sun的Javac 1.6都会创建一个额外的合成类.它使用某种SwitchMap.这个网站有更多信息,这里告诉你如何分析Javac正在做什么.
每次在枚举上使用开关时,额外的物理文件似乎都要付出高昂的代价!
有趣的是,Eclipe的编译器不会生成这些附加文件.我想知道唯一的解决方案是切换编译器吗?
我希望有一个内部(非窗口)对话框来询问成员输入.我希望将对话框集中放在现有的JPanel上.
我查看了分层窗格,由于在所有窗格中只有一个布局管理器(或没有布局管理器),因此它们似乎无法使用.我想我可以尝试覆盖JLayeredPane并提供自定义布局,但这似乎极端.
玻璃窗格似乎也不合适.
如何才能做到这一点?在Swing中没有可用的z索引概念吗?
http://i42.tinypic.com/30tkuvk.jpg
编辑
分层窗格不合适的原因是每层缺少布局管理器.该小组可调整大小,小组A应保持100%的面积,小组B应保持集中.
如何使用Google Chrome的postman插件使用POST将FormData()对象发送到webapi.FormData()对象具有表单字段personID和messageBody.我试过这样的事但无济于事:
URL of the webapi: http://localhost/<<appName>>/api/v1/message
Headers:
Accept:application/json
Content-Type:multipart/form-data; boundary=---XXX---
form-data:
personID:1 (Text)
messageBody:Hello (Text)
Run Code Online (Sandbox Code Playgroud) 使用新的JPA 2.1 存储过程调用,有没有办法传递null参数?
以下是一个示例用法:
StoredProcedureQuery storedProcedure = em.createStoredProcedureQuery("get_item", Item.class);
storedProcedure.registerStoredProcedureParameter(0, String.class, ParameterMode.IN);
storedProcedure.registerStoredProcedureParameter(1, String.class, ParameterMode.IN);
storedProcedure.registerStoredProcedureParameter(2, Timestamp.class, ParameterMode.IN);
storedProcedure.setParameter(0, a);
storedProcedure.setParameter(1, b);
storedProcedure.setParameter(2, c);
storedProcedure.execute();
Run Code Online (Sandbox Code Playgroud)
此工程时,所有的参数,但是,当c是null它会失败,并从(PostgreSQL的)JDBC驱动程序错误.
Caused by: org.postgresql.util.PSQLException: No value specified for parameter 2
at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:216) [postgresql-9.3-1101.jdbc41.jar:]
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:244) [postgresql-9.3-1101.jdbc41.jar:]
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559) [postgresql-9.3-1101.jdbc41.jar:]
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417) [postgresql-9.3-1101.jdbc41.jar:]
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:410) [postgresql-9.3-1101.jdbc41.jar:]
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:404)
at org.hibernate.result.internal.OutputsImpl.<init>(OutputsImpl.java:69) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
... 244 more
Run Code Online (Sandbox Code Playgroud)
我还考虑使用自己的类传递参数,例如:
storedProcedure.registerStoredProcedureParameter(0, InputParameters.class, ParameterMode.IN);
storedProcedure.setParameter(0, inputParameters);
Run Code Online (Sandbox Code Playgroud)
这失败了:
Caused by: java.lang.IllegalArgumentException: Type cannot be null
Run Code Online (Sandbox Code Playgroud)
我想因为它需要一个可以映射到SQL类型的类型.
有没有办法传递空参数?
我有一个用于不可变用途的类,因此我想标记所有字段final.
但是,该类被序列化和反序列化以通过网络发送.为此,需要一个空构造函数.这可以防止我创建最终字段.
我确信这是一个相当普遍的问题,但我找不到解决方案.我该怎么办?
我在持久化实体时使用了EJB3/JPA,我很高兴它能够管理我的数据库相关任务.我唯一关心的是异常处理.保存实体时的示例代码总是有这种风格.我在网上阅读的大多数教程都有这种风格,也不考虑异常处理.
@Stateless
public class StudentFacade{
@PersistenceContext(unitName = "MyDBPU")
private EntityManager em;
public void save(Student student) {
em.persist(student);
}
}
Run Code Online (Sandbox Code Playgroud)
但我不知道EJB应用程序中最好的异常处理方式是什么?处理异常时最好的方法是什么?
这是其他人如何处理异常?会话外观上的try catch块?
@Stateless
public class StudentFacade{
@PersistenceContext(unitName = "MyDBPU")
private EntityManager em;
public void save(Student student) {
try {
em.persist(student);
} catch(Exception e) {
//log it or do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
或让该方法抛出异常?
public void save(Student student) throws Exception {
em.persist(student);
}
Run Code Online (Sandbox Code Playgroud)
我不知道我的理解是否正确,因为我还在学习EJB.谢谢
我知道如何使用部署一个小应用程序applet,object,embed标签和JavaScript,但最好的方法(以最终用户体验方面)之后我.
Sun建议在同一页面上使用applet标记和混合嵌入/对象标记.
我正在考虑的是以下内容:
之前已经提出过一些问题:如何部署,检查1.6和插件框架.这些都没有完全回答我的问题.我也不考虑网络启动或Java FX.
我目前的解决方案是包含一个为Java 1.1编译的额外的小测试applet.如果找到Java pre-1.5,则会将页面重定向到失败页面.如果没有找到Java,该页面会要求用户访问java.com.这可以接受,但是很差,因为它需要额外的小程序,并且在VM启动时不显示任何内容.
通过简单地转换以下("大5"):
& -> &
< -> <
> -> >
" -> "
' -> '
Run Code Online (Sandbox Code Playgroud)
你会阻止XSS攻击吗?
我认为你也需要在角色级别上列出白名单,以防止某些攻击,但以下答案表明它使问题过于复杂.
编辑此页面详细信息it does not prevent more elaborate injections, does not help with "out of range characters = question marks" when outputting Strings to Writers with single byte encodings, nor prevents character reinterpretation when user switches browser encoding over displayed page.实质上只是逃避这些字符似乎是一个非常天真的方法.