小编Poo*_*ool的帖子

Java枚举和其他类文件

我注意到enums在编译膨胀总大小之后引入了许多额外的类文件(Class $ 1).它似乎附属于甚至使用枚举的每个类,并且这些通常是重复的.

为什么会发生这种情况,并且有一种方法可以在不删除枚举的情况下阻止这种情况

(问题的原因是空间对我来说是非常宝贵的)

编辑

在进一步研究这个问题时,每次在Enum上使用开关时,Sun的Javac 1.6都会创建一个额外的合成类.它使用某种SwitchMap.这个网站有更多信息,这里告诉你如何分析Javac正在做什么.

每次在枚举上使用开关时,额外的物理文件似乎都要付出高昂的代价!

有趣的是,Eclipe的编译器不会生成这些附加文件.我想知道唯一的解决方案是切换编译器吗?

java enums

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

如何用PHP生成随机密码?

或者是否有自动生成随机密码的软件?

php random passwords

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

Java Swing - 如何在另一个面板上显示面板?

我希望有一个内部(非窗口)对话框来询问成员输入.我希望将对话框集中放在现有的JPanel上.

我查看了分层窗格,由于在所有窗格中只有一个布局管理器(或没有布局管理器),因此它们似乎无法使用.我想我可以尝试覆盖JLayeredPane并提供自定义布局,但这似乎极端.

玻璃窗格似乎也不合适.

如何才能做到这一点?在Swing中没有可用的z索引概念吗?

http://i42.tinypic.com/30tkuvk.jpg

编辑

分层窗格不合适的原因是每层缺少布局管理器.该小组可调整大小,小组A应保持100%的面积,小组B应保持集中.

java swing dialog z-index jpanel

31
推荐指数
3
解决办法
11万
查看次数

如何使用邮递员测试formdata?

如何使用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)

forms json postman

20
推荐指数
2
解决办法
5万
查看次数

是否可以将null参数传递给Java JPA 2.1中的存储过程?

使用新的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类型的类型.

有没有办法传递空参数?

java stored-procedures jpa

18
推荐指数
3
解决办法
3万
查看次数

序列化和不可变对象

我有一个用于不可变用途的类,因此我想标记所有字段final.

但是,该类被序列化和反序列化以通过网络发送.为此,需要一个空构造函数.这可以防止我创建最终字段.

我确信这是一个相当普遍的问题,但我找不到解决方案.我该怎么办?

java serialization final

17
推荐指数
3
解决办法
7722
查看次数

Applet v/s Servlet

什么是JAVA中的Applet和Servlet之间的区别

java applet servlets

17
推荐指数
2
解决办法
2万
查看次数

JPA中更好的异常处理

我在持久化实体时使用了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.谢谢

java ejb-3.0 jpa-2.0

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

什么是Rolls-Royce部署Java applet的方式?

我知道如何使用部署一个小应用程序applet,object,embed标签和JavaScript,但最好的方法(以最终用户体验方面)之后我.

Sun建议在同一页面上使用applet标记和混合嵌入/对象标记.

我正在考虑的是以下内容:

  1. 跨浏览器支持.
  2. 如果找到不正确的Java版本,则回退到下载页面(例如,前1.5).
  3. 加载Java VM启动期间和下载Jar时的页面(理想情况下是带有进度条的自定义初始屏幕).

之前已经提出过一些问题:如何部署,检查1.6和插件框架.这些都没有完全回答我的问题.我也不考虑网络启动或Java FX.

我目前的解决方案是包含一个为Java 1.1编译的额外的小测试applet.如果找到Java pre-1.5,则会将页面重定向到失败页面.如果没有找到Java,该页面会要求用户访问java.com.这可以接受,但是很差,因为它需要额外的小程序,并且在VM启动时不显示任何内容.

java applet cross-browser

15
推荐指数
2
解决办法
4432
查看次数

HTML编码是否会阻止XSS安全漏洞?

通过简单地转换以下("大5"):

& -> &amp;
< -> &lt;
> -> &gt;
" -> &#034;
' -> &#039;
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.实质上只是逃避这些字符似乎是一个非常天真的方法.

xss escaping

12
推荐指数
3
解决办法
2万
查看次数