小编Bob*_*out的帖子

当捕获实际上没有捕获任何东西

由于最近存储在数据库中的数据不好,导致程序崩溃.这让我感到困惑,因为我觉得我有一个阻止这一点.

以下代码的目的是比较员工徽章编号并对其进行排序.如果出现错误,请返回-1并且士兵开启 - 请勿停止,因为数千个徽章编号中的一个错误:

public int compare(Employee t, Employee t1) {
    Integer returnValue = -1;
    try {
        Integer tb = Integer.parseInt(t.getBadgeNumber());
        Integer t1b = Integer.parseInt(t1.getBadgeNumber());
        returnValue = tb.compareTo(t1b);
    } catch (Exception e) {
        returnValue = -1;//useless statement, I know.
    }
    return returnValue;
}
Run Code Online (Sandbox Code Playgroud)

当坏徽章编号被击中时(在这种情况下为t),我得到了一个"java.lang.IllegalArgumentException:比较方法违反了它的一般合同!" 错误而不是在catch中返回-1.

关于这里的捕获,我不明白什么?

完整的堆栈跟踪:

16-May-2018 14:28:53.496 SEVERE [http-nio-8084-exec-601] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [RequestServlet] in context with path [/AppearanceRequest] threw exception
 java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeForceCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:223)
at java.util.TimSort.sort(TimSort.java:173) …
Run Code Online (Sandbox Code Playgroud)

java exception try-catch comparator

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

打印到物理形式 - 需要基本的理解

我不太确定我理解g.drawString.

我有一个写入预打印表单的程序.用户声称打印是不规则的...即,表单上的文本比先前的打印更高/更低.就个人而言,我认为他们错误地填写了表单,但由于他们付钱给我编写代码,我正在测量表单并将尺寸转换为像素并重写处理打印的部分.

要正确打印表单,c.getCostAmount()必须打印一个像素ABOVE c.getAppraisersAmount(),使其在其下方显示一行.然而,每个后续行低于4mm(或大约15个像素).

我的问题是我不理解垂直距离以及为什么第3行必须放在上一行之上的像素才能使其位于下方.

任何人都有一个快速简单的解释或指向教程/解释的链接?

非常感谢!

代码(h/t Alex,Java:打印程序输出到物理打印机):

public int print(Graphics g, PageFormat pf, int page, Check c){
    final double MILLIMETER_IN_PIXELS = 3.779527559;
    DecimalFormat df = new DecimalFormat("$#.00");

    if (page > 0) {
        return NO_SUCH_PAGE;
    }

    Graphics2D g2d = (Graphics2D) g;
    int x = (int) pf.getImageableX();
    int y = (int) pf.getImageableY();
    g2d.translate(x, y + .5);

    Font font = new Font("Courier New", Font.PLAIN, 10);
    g2d.setFont(font);
    FontMetrics metrics = g.getFontMetrics(font);
    g.drawString("CHECK #" + c.getCheckNumber(), ((int) MILLIMETER_IN_PIXELS* 55),((int) …
Run Code Online (Sandbox Code Playgroud)

java printing

7
推荐指数
1
解决办法
148
查看次数

生成的按钮触发表单提交

我有一个 javascript/jquery 函数,可以在表单内的表中生成表行。表中包含两个按钮。两个按钮都应该触发 javascript 函数(一个更新数据库并将按钮更改为文本,另一个应该更新数据库和表单)但不提交表单。相反,即使我有“返回假”,它也会触发表单提交。在 onclick 事件中。

复制生成的html并运行它会产生预期的结果;即,该函数已运行,但未提交表单。

如何在不提交表单的情况下让生成按钮触发 javascript 函数?

涉及的 HTML:

    <div id="tabs-4" style="width: 97%;height: 600px;text-align: center;">
                <select id="selRosterList" name="selRosterList" onchange="updateRosterView()">
                    <option value="none">Select a class</option>
                    <option value="1">1st Class Roster</option>
                </select>
                <div id="divShowRoster" name="divShowRoster" style="width: 100%; text-align: center; display: none;">
                    <div style="overflow: auto; height: 300px;margin-top: 20px;">
                    <table id="tblRoster" name="tblRoster" style="border: thin black solid;background-color: aliceblue;">
                        <thead>
                        <th style="width: 15%;font-size: small;">Name</th>
                        <th style="width: 15%;font-size: small;">Email</th>
                        <th style="width: 10%;font-size: small;">Phone</th>
                        <th style="width: 8%;font-size: small;">PID/<br>SSN</th>
                        <th style="width: 14%;font-size: small;">Department</th>
                        <th style="width: 14%;font-size: small;">Organization</th> …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

MySQL查询适用于MySQL,但不适用于Java

当我通过Java运行mysql插件时,我得到了"你的SQL语法中有错误"错误,这在MySQL中运行正常.不太确定发生了什么.

桌子:

mysql> desc fauteam;
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| id       | int(8)   | NO   | PRI | NULL    | auto_increment |
| officer1 | tinytext | YES  |     | NULL    |                |
| officer2 | tinytext | YES  |     | NULL    |                |
| callsign | tinytext | NO   |     | NULL    |                |
| sector   | tinytext | NO   |     | NULL    |                |
| teamDate | …
Run Code Online (Sandbox Code Playgroud)

java mysql

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

在字符串中查找多个项目

我正在解析一堆员工事故报告以用于报告目的.

事件报告本身是自由文本,我必须按身体位置对伤害进行分类.我想避免if{}elseif{}elseif{}....}else{}.

事件报告示例:

Employee slipped on wet stairs and injured her knee and right arm, and struck her head on the handrail.
Run Code Online (Sandbox Code Playgroud)

应该在受影响的区域添加"膝盖","手臂"和"头部".

Employee was lifting boxes without approved protective equipment resulting in a back strain.
Run Code Online (Sandbox Code Playgroud)

应该向受影响的区域添加"返回".

While attempting to unjam copier, employee got right index finger caught in machinery resulting in a 1-inch cut.
Run Code Online (Sandbox Code Playgroud)

应该在受影响的区域添加"手指".

现在,我有:

private static StaffInjuryData setAffectedAreas(String incident, StaffInjuryData sid){
   incident = incident.toUpperCase(); //eliminate case issues

   if(incident.contains("HEAD")){
       sid.addAffectedArea("HEAD");
   }else if(incident.contains("FACE")){
       sid.addAffectedArea("FACE");
   }else if(incident.contains("EYE")){
       sid.addAffectedArea("EYE"); …
Run Code Online (Sandbox Code Playgroud)

java string

2
推荐指数
1
解决办法
55
查看次数

标签 统计

java ×4

comparator ×1

exception ×1

javascript ×1

jquery ×1

mysql ×1

printing ×1

string ×1

try-catch ×1