小编Nat*_*hes的帖子

使用SAX解析具有未知递归量的XML结构

我必须使用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结构的内容?

java xml recursion parsing sax

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

使用正则表达式进行LDAP搜索

有没有办法我可以使用正则表达式搜索LDAP?我正在使用ldapsearch或"Sun Java System Directory Server控制中心"进行搜索.

regex ldap

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

什么是一类,一个责任原则?

我想了解一级,一个责任原则.我找到了一些关于它的文章,但没有例子.如果你能给我一个违反这个原则的课程的例子,这对我有帮助.

我熟悉一个方法应该只做一件事的想法,例如get和set方法.它不能与One Class,One Responsibility相同,因为set和get方法都在类中实现.那么这是否意味着该类违反了该规则,因为该类有责任设置和获取?

什么是一类,一个责任原则

java design-patterns solid-principles

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

Java错误:应在名为的文件中声明

我是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文件.对解决方案的任何想法都会很棒.

提前致谢!

提供所有信息.我正在尝试解决以下问题.

超类计算器包含:

  • 一个(受保护的)双实例变量accumulator,它包含计算器的当前值.

写一个子类,CalculatorWithMemory,其中包含:

  • 一个双实例变量memory,初始化为0
  • 一个方法save,它将累加器的值赋给内存
  • 回想一下,将内存值分配给累加器的方法
  • 一个方法,clearMemory,它为内存分配零
  • 一个方法getMemory,它返回存储在内存中的值

java

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

投掷和捕捉异常

嘿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)

这是正确的做法吗?如果我抛出异常会更合适吗?对不起,我是异常的新手:)

java exception-handling exception

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

抽象类或接口中的public static final字段

我有很多抽象类的子类,每个子类声明一个具有相同名称的公共静态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)

java inheritance static abstract-class

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

ORA-01779:无法修改映射到非密钥保留表的列

我有这个程序:

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)

然后这很好用.你能告诉我发生了什么吗?

oracle plsql

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

在java中操作数据时的好习惯

直接操作数据是不好的做法,如:

 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)

请让我知道哪个是更好的做法,谢谢!

java sorting

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

java中内部静态类的构造函数?

我写了下面的代码

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 oop javap

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

Java中的内部类与子类

是否存在在Java中使用内部类而不是子类更有利的情况(反之亦然)?根据我目前的理解,内部类可以访问外部类的字段和方法.这与使用继承有什么不同?

子类通常可以访问标记为public和protected的所有字段/方法.可以使用getter方法在子类中访问父类中标记为private的字段.基于我迄今为止看到的内容,当方法被标记为私有时,它们通常在类的其他方法中被调用,这些方法被标记为public或protected.当然,我不是一个经验丰富的Java程序员,但这似乎是大势所趋.

根据我目前的理解,选择一个在另一个之间似乎没有任何好处.有人可以让我深入了解为什么以及何时应该使用内部类而不是继承(或反之亦然)?

java inheritance inner-classes

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