小编Sud*_*hul的帖子

桌面浏览在java中不适用于Ubuntu

desktop = Desktop.getDesktop().browse(uri);
Run Code Online (Sandbox Code Playgroud)

上面的代码在Ubuntu OS中不起作用.如果我执行此代码,那么我的应用程序会被触发并挂起一段时间,在此期间我无法在java控制台中停止正在运行的应用程序.能够关闭该应用程序的唯一方法是FORCE QUIT.

java ubuntu desktop-application

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

如何仅使用ELEMENT_NODE类型获取子节点

我正在使用java DOM解析xml文档,我需要让每个节点都做一些事情.

我有这个代码:

public void analyze_file(Node node){
        if(node.getNodeType() != Node.DOCUMENT_NODE){
            //do something
        }
        NodeList list = node.getChildNodes();
        for(int i=0; i<list.getLength(); i++){
            if(list.item(i).getNodeType() == Node.ELEMENT_NODE){
                analyze_file(list.item(i));
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的xml文件非常大(> 30000行),上面的代码需要太多时间来检查节点是否属于ELEMENT_NODE类型.我看到如果程序在到达最后一个ELEMENT_NODE节点后停止,则执行时间会非常短.

有没有办法获得所有类型ELEMENT_NODE只有的子节点?

例如: NodeList list = node.getElementChildNodes();

谢谢你的帮助!

java xml dom

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

java.sql.SQLException:ResultSet已关闭

我无法进行进一步的处理,因为我在运行此代码时关闭了ResultSet.我在sqlite数据库表的15行之后添加了值,我希望找到15行的平均值,并且应该存储在ArrayList中.

这是代码: -

try {
    Class.forName("org.sqlite.JDBC");
    c = DriverManager.getConnection("jdbc:sqlite:test.db");
    c.setAutoCommit(false);
    System.out.println("Opened database successfully3");
    stmt = c.createStatement();
    rs = stmt
            .executeQuery("SELECT TIME,BID,ASK FROM '" + title + "' ;");
    System.out.println("Opened database successfully 20");
    while (rs.next()) {
        i++;
        System.out.println(i);
        if (i > 15) {
            System.out.println("i am in");
            List<String> stocklist = new ArrayList<String>();
            String main = rs.getString(1);
            System.out.println(rs.getString(1));
            String s[] = main.split(" ", 2);
            String date = s[0];
            String time = s[1];
            stocklist.add(date);
            stocklist.add(time);
            stocklist.add(df.format(rs.getFloat("BID")));
            stocklist.add(df.format(rs.getFloat("ASK")));
            rs1 = stmt
                    .executeQuery("SELECT ASK FROM '" …
Run Code Online (Sandbox Code Playgroud)

java sqlite

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

如何在java中返回字符串中最长的字符序列?

以下是我最终做的但我找不到正确的答案.

示例 - 如果我有序列"hellloo",则输出将为"lll".请告诉我有什么问题?

public class LongestSequenceOfChar {
    static String testcase1="hellloo";

    public static void main(String[] args) {
        LongestSequenceOfChar test = new LongestSequenceOfChar();
        String result = test.longestSequenceOfChar(testcase1);
        System.out.println(result);
    }
    public String longestSequenceOfChar(String str){
        String result="";
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            for(int j=i+1;j<str.length();j++){
                char ch1=str.charAt(j);
                if(ch!=ch1){
                    continue;
                }
                result+=ch;
            }
        }
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

读取具有特定字符串的java中的属性文件

我正在使用一个.properties文件.在那我有以下配置参数:

Appnameweb = app1
Appnamemobile = app2
Appnameweb1 = app3
Run Code Online (Sandbox Code Playgroud)

可以有许多以用户提供的Appname开头的配置参数.如何读取所有属性文件参数,其中键将包含特定的字符串,如本例中的Appname?

java properties-file

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

从另一个类检索int时获取null

基本上我做了这个程序,计算机生成随机卡.我创建了一个名为'rndnumber'的类,这个类生成随机数.然后,我创建了另一个名为'rndsuits'的类,这会生成随机套装.问题是当我去我的主类,并执行代码时,我得到的是null而不是数字和套装.谁知道为什么?我的输出基本上是:这是你的随机卡:null null.

public class maincard { 

public static void main(String[] args){

    System.out.println("Here is your random card");

    rndnumber h = new rndnumber();
    rndsuit a = new rndsuit();


    System.out.println(h.getString() + " of " + a.getStringz());

}

}


public class rndnumber {

private int rndnumber = (int) (Math.random()*13+1);
private String number;

public String getString(){
    return number;
}


public void rnd(){
    switch (rndnumber){
    case 1:
        number = "Ace";
        break;
    case 2:
        number = "2";
        break;
    case 3:
        number = "3";
        break;
    case 4:
        number …
Run Code Online (Sandbox Code Playgroud)

java

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

如何将枚举值传递给构造函数

protected enum Category { Action, Fiction, Drama, Romance, SciFi, Poems, Kids } 
Run Code Online (Sandbox Code Playgroud)

我创建了这个enum类型,现在我必须为我的类创建一个构造函数.

public Book(String title, int code, List<String> authors, String publisher, int year, Category categ){
        this.title = title;
        this.code = code;
        this.authors = authors;
        this.publisher = publisher;
        this.year = year;
        this.category = ....;
}
Run Code Online (Sandbox Code Playgroud)

我不明白我将如何向构造函数传递枚举类型的值.

有人可以帮忙吗?

我知道这是初学者的问题,但我似乎无法在任何地方找到答案.

java enums constructor

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

通用所需的强制转换

我上课了:

class ColumnBuilder < C extends ICompositeColumn > implements IColumnBuilder < C , 
List < ColumnNameComponent > > {

    @Override
    public C getColumn(List<ColumnNameComponent> columnNameComponents) {
        Collections.sort(columnNameComponents);
        C compositeColumn = (C)new CompositeColumnImpl();

        for (ColumnNameComponent component : columnNameComponents){
            compositeColumn.add(component.getOrdinal(),component.getValue());
        }
        return  compositeColumn;
    }
Run Code Online (Sandbox Code Playgroud)

CompositeColumnImpl类实现ICompositeColumn接口为什么编译器需要在此行中放置cassting:

C compositeColumn = (C)new CompositeColumnImpl();
Run Code Online (Sandbox Code Playgroud)

谢谢.

java generics casting

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

Java类型混乱

以这两个片段为例:

情况1:

Scanner s = new Scanner(System.in);
int n = s.nextInt(); /** take user input **/

n *= Double.NEGATIVE_INFINITY;
Run Code Online (Sandbox Code Playgroud)

案例2:

int k=10;
double kk = 10.10;

int rst = k*kk;
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都没有从我这边进行任何类型转换,但是Case 1执行并n正确打印值,但是Case 2抛出错误,can not convert from double to int.为何如此区别?

java casting

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

在不实例化其类的情况下调用公共"非静态"变量或方法

有没有办法调用公共非静态变量或方法而不实例化其类java ...

java non-static

0
推荐指数
1
解决办法
2883
查看次数