我必须使用SAX解析器在JAVA中解析XML结构.
问题是结构是递归的,具有未指定的递归计数.这仍然不是什么大问题,最重要的是我无法利用XML命名空间功能,并且标记在每个递归级别上都是相同的.
这是结构的一个例子.
<?xml version="1.0" encoding="UTF-8"?>
<RootTag>
<!-- LOADS OF OTHER TAGS -->
<Tags attribute="value">
<Tag attribute="value">
<SomeOtherTag></SomeOtherTag>
<Tags attribute="value">
<Tag attribute="value">
<SomeOtherTag></SomeOtherTag>
<Tags attribute="value">
<!-- MORE OF THE SAME STRUCTURE -->
</Tags>
</Tag>
</Tags>
</Tag>
</Tags>
<!-- LOADS OF OTHER TAGS -->
</RootTag>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,有一个递归,更好的是一个未定义的递归数.现在我的问题是如何为每次递归提取所有数据并将其保存在HashMap例如中.
我可以定义一个ContentHandlerfor的出现Tags并让它在a中提取内容HashMap并将其放回主内容处理程序中定义的master HashMap中,但我不确定这样做是否热.
如何在不使用命名空间的情况下提取和保存递归XML结构的内容?
有没有办法我可以使用正则表达式搜索LDAP?我正在使用ldapsearch或"Sun Java System Directory Server控制中心"进行搜索.
我想了解一级,一个责任原则.我找到了一些关于它的文章,但没有例子.如果你能给我一个违反这个原则的课程的例子,这对我有帮助.
我熟悉一个方法应该只做一件事的想法,例如get和set方法.它不能与One Class,One Responsibility相同,因为set和get方法都在类中实现.那么这是否意味着该类违反了该规则,因为该类有责任设置和获取?
什么是一类,一个责任原则?
我是Java的新手,并试图弄清楚如何解决以下错误:
CalculatorWithMemory.java:1: class Calculator is public, should be declared
in a file named Calculator.java
public class Calculator
Run Code Online (Sandbox Code Playgroud)
所以我的想法是,这意味着我必须保存2个不同的.java文件.但是,这是一个类,我只有一个提供的文本块来键入我的解决方案,所以我不能将它们保存为.java文件.对解决方案的任何想法都会很棒.
提前致谢!
提供所有信息.我正在尝试解决以下问题.
超类计算器包含:
写一个子类,CalculatorWithMemory,其中包含:
嘿StackOverflow社区,
关于抛出异常.一般来说,我什么时候抛出异常,什么时候抓住它?
让我们说,由于发生了一些问题而无法从中恢复,我遇到了这种情况.我扔了还是抓住了?
我现在这样做:
try {
// some code
}
catch (IOException e) {
logger.info("Failed to do something, and cannot continue" + e.getMessage(), e);
e.printStackTrace();
throw e;
}
Run Code Online (Sandbox Code Playgroud)
这是正确的做法吗?如果我抛出异常会更合适吗?对不起,我是异常的新手:)
我有很多抽象类的子类,每个子类声明一个具有相同名称的公共静态final字段.我想在抽象超类中使用这个字段而不初始化它,并希望每个子类都被强制初始化它.
我正在考虑这个问题,因为抽象类的所有子类都声明了一个名为UNIQUE_ID的公共静态最终字符串字段,并且每个子类都必须声明具有该名称的字段.
我希望我的问题很清楚,如果不是,请告诉我.
可以或多或少地与此相提并论吗?
编辑:代码添加:
我的抽象类看起来像:
public abstract class ExperimentPanelModel extends Panelizable {
protected String nextButtonText;
protected String backButtonText;
protected String skipButtonText;
protected Properties currentFile;
protected List<Properties> pastFiles = new ArrayList<Properties>();
public ExperimentPanelModel(Properties argcurrentfile, List<Properties> argpastfiles) {
currentFile = argcurrentfile;
pastFiles = argpastfiles;
nextButtonText = "Next";
backButtonText = "Back";
skipButtonText = "Skip";
}
...
}
Run Code Online (Sandbox Code Playgroud)
该抽象类的一些非抽象子类看起来像(注意所有这些子类都声明public static final String UNIQUE_ID):
public class ConfigurationGUI extends ExperimentPanelModel {
public static final String UNIQUE_ID = "ConfigurationGUI";
public static final String DATA_MODIFIED …Run Code Online (Sandbox Code Playgroud) 我有这个程序:
create or replace procedure changePermissionsToRead(
datasource in varchar2
)
IS
begin
update
(
select * from
WEB_USERROLE ur ,
WEB_USERDATASOURCE ds
where
ur.username = ds.username
and
ds.datasource = datasource
and
ur.READ_ONLY <> 'Y'
)
r set r.role = replace(r.role, 'FULL', 'READ');
end;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ORA-01779
Run Code Online (Sandbox Code Playgroud)
但如果我拿出更新,我写道:
update
(
select * from
WEB_USERROLE ur ,
WEB_USERDATASOURCE ds
where
ur.username = ds.username
and
ds.datasource = 'PIPPO'
and
ur.READ_ONLY <> 'Y'
)
r set r.role = replace(r.role, 'FULL', 'READ');
Run Code Online (Sandbox Code Playgroud)
然后这很好用.你能告诉我发生了什么吗?
直接操作数据是不好的做法,如:
Sorter.mergeSort(testData); //(testData is now sorted)
Run Code Online (Sandbox Code Playgroud)
或者我应该创建数据的副本,然后操纵并返回,如:
sortedData = Sorter.mergeSort(testData); // (sortedData is now sorted and testData remains unsorted)?
Run Code Online (Sandbox Code Playgroud)
我有几种排序方法,我希望它们在操作数据的方式上保持一致.使用我的insertSort方法,我可以直接处理未排序的数据.但是,如果我想保持未分类的数据不变,那么我将不得不在insertionSort方法中创建未排序数据的副本并操纵并返回它(这似乎是不必要的).另一方面,在我的mergeSort方法中,我需要以这样或那样的方式创建未排序数据的副本,所以我最终做了一些似乎相当不必要的事情,作为返回新的sortedList的工作:
List <Comparable> sorted = mergeSortHelper(target);
target.clear();
target.addAll(sorted);`
Run Code Online (Sandbox Code Playgroud)
请让我知道哪个是更好的做法,谢谢!
我写了下面的代码
public class Reader1 {
private int pageNumber;
private class ReaderName1{
public int getPage(){
return pageNumber;
}
}
static class ReaderFound{
}
}
Run Code Online (Sandbox Code Playgroud)
当我在已编译的代码上使用Java类文件反汇编程序javap时
1. for Reader1.class
class Reader1$ReaderName1 {
final Reader1 this$0;
private Reader1$ReaderName1(Reader1);
public int getPage();
}
2. for Reader1$ReaderName1.class
public class Reader1 {
private int pageNumber;
public Reader1();
static int access$000(Reader1);
}
3. for Reader1$ReaderFound.class
class Reader1$ReaderFound {
Reader1$ReaderFound();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,因为ReaderFound是一个静态类,它怎么能有一个默认的构造函数?如果是这样的话?是允许的吗?
如果允许在Reader1 $ ReaderFound类中找到什么样的构造函数,因为它不能是静态的.(此外,由于构造函数被隐式调用以初始化一个对象,因为ReaderFound是一个静态类,所以我们没有它的对象.我对第一个问题的观点)
是否存在在Java中使用内部类而不是子类更有利的情况(反之亦然)?根据我目前的理解,内部类可以访问外部类的字段和方法.这与使用继承有什么不同?
子类通常可以访问标记为public和protected的所有字段/方法.可以使用getter方法在子类中访问父类中标记为private的字段.基于我迄今为止看到的内容,当方法被标记为私有时,它们通常在类的其他方法中被调用,这些方法被标记为public或protected.当然,我不是一个经验丰富的Java程序员,但这似乎是大势所趋.
根据我目前的理解,选择一个在另一个之间似乎没有任何好处.有人可以让我深入了解为什么以及何时应该使用内部类而不是继承(或反之亦然)?