我试图解析一个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 <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) 它似乎并不直截了当.
我在尝试这个:
@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)方法.
我正在编写Hadoop/HBase作业.我需要将Java String转换为字节数组.Java String.getBytes()和Hadoop 之间有什么区别Bytes.toBytes()吗?
我希望有一个A参数化的接口T A<T>,并且也希望每个实现它的类也实现Comparable(使用T及其子类型).写作似乎很自然interface A<T> extends Comparable<? extends T>,但这不起作用.那我该怎么办?
我有以下代码:
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) 人们说该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) 我需要一些帮助来理解IOException.我在互联网上查看了很多信息,并查看了Oracle Java网站上的技术规范.
我对IOException类及其所有子类的理解是否正确,没有关联的"错误消息"或"返回代码"值?
因此,如果想要发出一些消息和/或返回代码值,那么必须使用IOException catch逻辑插入它们吗?
如果以上是真的,那么如何将各种IOException子类分开?
例如,如果应用程序检测到IOException,它是什么类型的IOException?文件结束,文件已关闭,文件未发现,文件使用等.
Java中的switch语句可能有多少种情况?例如,如果我们检查一个整数,可能有多少个案例块?
我正处于一个Android项目的中间,并试图在其中创建一个新的包.
com.mycompany.myprojectname.new
Run Code Online (Sandbox Code Playgroud)
好吧,Eclipse不允许我创建它并显示此错误:
包名称无效.'new'不是有效的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
java ×10
android ×1
causality ×1
collections ×1
concurrency ×1
eclipse ×1
exception ×1
generics ×1
hadoop ×1
hbase ×1
inheritance ×1
interface ×1
ioexception ×1
javac ×1
jodatime ×1
package ×1
try-catch ×1
xml ×1