小编Joa*_*uer的帖子

org.xml.sax.SAXParseException:对实体"T"的引用必须以';'结尾 分隔符

我试图解析一个XML文件,其中包含一些特殊字符,如"&"使用DOM解析器.我得到saxparse异常"对实体的引用必须以aa分隔符结束".有没有办法克服这个异常,因为我无法修改XML文件来删除特殊字符,因为它来自不同的应用程序.请建议一种解析此XML文件以获取根元素的方法?

提前致谢

这是我正在解析的XML部分

<P>EDTA/THAM WASH 
</P>

<P>jhc ^ 72. METER SOLVENT: Meter 21 LITERS of R. O. WATER through the add line into 
FT-250. Start agitator. 
</P>

<P>R. O. WATER &lt;ZLl LITERS </P>

<P>•     NOTE: The following is a tool control operation. The area within 10 feet of any open vessel or container is under tool control. </P>

<P>-af . 73. CHARGE SOLIDS: Remove any unnecessary items from the tool controlled area. Indicate the numbers of each item that will …
Run Code Online (Sandbox Code Playgroud)

java xml

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

如何比较两个Joda时间段

它似乎并不直截了当.

我在尝试这个:

@Override
public int compare(Period o1, Period o2) {
    return o1.toStandardDays().getDays() > o2.toStandardDays().getDays() ? -1 : (o1.toStandardDays().getDays() == o2.toStandardDays().getDays() ? 0 : 1);
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外:

java.lang.UnsupportedOperationException: Cannot convert to Days as this period contains months and months vary in length
    at org.joda.time.Period.checkYearsAndMonths(Period.java:1455)
    at org.joda.time.Period.toStandardDays(Period.java:1314)

我希望Peroid有一种isLongerThan(Period p)方法.

java jodatime

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

String.getBytes()和Bytes.toBytes(字符串数据)之间的区别

我正在编写Hadoop/HBase作业.我需要将Java String转换为字节数组.Java String.getBytes()和Hadoop 之间有什么区别Bytes.toBytes()吗?

java hadoop hbase

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

Java接口扩展了Comparable

我希望有一个A参数化的接口T A<T>,并且也希望每个实现它的类也实现Comparable(使用T及其子类型).写作似乎很自然interface A<T> extends Comparable<? extends T>,但这不起作用.那我该怎么办?

java generics inheritance interface

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

java编译器说这个异常永远不会在相应的try语句的主体中抛出 - 但是它被抛出了_is_

我有以下代码:

try {
    //jaw-ws service port operation
    port.login();
} catch (Exception e) {
    logger.error("Caught Exception in login(): " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

当使用不正确的主机名运行上述内容时,我得到:

Caught Exception in login(): HTTP transport error: java.net.UnknownHostException: abc
Run Code Online (Sandbox Code Playgroud)

这是正确和预期的.我重新编写代码以专门捕获UnknownHostException,如下所示:

import java.net.UnknownHostException;
try {
    //jaw-ws service port operation
    port.login();
} catch (UnknownHostException uhe) {
    //do something specific to unknown host exception
} catch (Exception e) {
    logger.error(Caught Exception in login(): " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译它时,我得到:

[javac] foo.java: exception java.net.UnknownHostException is never thrown in body of corresponding try statement …
Run Code Online (Sandbox Code Playgroud)

java exception-handling exception javac try-catch

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

Arrays.asList()有疑问吗?

人们说该asList方法将数组转换为列表而不是复制,因此'aList'中的每个更改都会反映为'a'.因此,在'aList'中添加新值是非法的,因为数组具有固定的大小.

但是,asList()方法返回ArrayList<T>.编译器如何将第3行与5区分开来.第3行给出了exception(UnsupportedOperationException).

        String[] a = {"a","b","c","d"};//1
        List<String> aList =  Arrays.asList(a);//2
        aList.add("e");//3
        List<String> b = new ArrayList<String>();//4
        b.add("a");//5
Run Code Online (Sandbox Code Playgroud)

java collections

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

了解Java IOException

我需要一些帮助来理解IOException.我在互联网上查看了很多信息,并查看了Oracle Java网站上的技术规范.

我对IOException类及其所有子类的理解是否正确,没有关联的"错误消息"或"返回代码"值?

因此,如果想要发出一些消息和/或返回代码值,那么必须使用IOException catch逻辑插入它们吗?

如果以上是真的,那么如何将各种IOException子类分开?

例如,如果应用程序检测到IOException,它是什么类型的IOException?文件结束,文件已关闭,文件未发现,文件使用等.

java ioexception

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

在Java中切换语句

Java中的switch语句可能有多少种情况?例如,如果我们检查一个整数,可能有多少个案例块?

java switch-statement

16
推荐指数
4
解决办法
4458
查看次数

Eclipse Java - 包名无效 - 包名中的保留字

我正处于一个Android项目的中间,并试图在其中创建一个新的包.

com.mycompany.myprojectname.new
Run Code Online (Sandbox Code Playgroud)

好吧,Eclipse不允许我创建它并显示此错误:

包名称无效.'new'不是有效的Java标识符

我从来不知道包名有保留字,我们无法使用.我的问题是;

  1. 这是Eclipse的东西吗?还是Java的东西?我尝试了一个纯Java项目(不是Android),只是为了检查,但我也遇到了同样的错误.
  2. 什么是不允许的其他保留字?
  3. 有没有关于此的文件?

java eclipse android package

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

为什么在Java内存模型中允许这种行为?

JMM中的因果关系似乎是其中最令人困惑的部分.我有几个关于JMM因果关系的问题,并允许并发程序中的行为.

据我了解,目前的JMM总是禁止因果关系循环.(我对吗?)

现在,根据JSR-133文档,第24页,图16,我们有一个例子,其中:

原来 x = y = 0

线程1:

r3 = x;
if (r3 == 0)
    x = 42;
r1 = x;
y = r1;
Run Code Online (Sandbox Code Playgroud)

线程2:

r2 = y;
x = r2;
Run Code Online (Sandbox Code Playgroud)

直觉上,r1 = r2 = r3 = 42似乎不可能.但是,它不仅被提及,而且在JMM中也被"允许".

对于这种可能性,我无法理解的文件中的解释是:

编译器可以确定分配给的唯一值x是0和42.从那以后,编译器可以推断出,在我们执行的时候r1 = x,我们刚刚执行了42的写入 x,或者我们刚刚读过x和看过价值42.在任何一种情况下,读取x价值42 是合法的.然后可以r1 = x改为r1 = 42; 这将允许y = r1转换为y = 42更早并执行,从而导致相关行为.在这种情况下,y首先提交写入.

我的问题是,它真的是什么样的编译器优化?(我是编译器无知的.)由于42只被写入有条件,当if …

java concurrency compiler-optimization causality java-memory-model

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