双Java实例

双Java实例,java,Java,我在使用instanceof Double时遇到了一些问题,无论我是使用Double还是Double,无论我是在if语句上面还是下面进行解析,我都会出错 任何帮助都将不胜感激 更新:根据解析的位置,错误会有所不同,从无法比较字符串到明显的双精度。但也不能比较double和double,以及double的无效维度 List<String> graphlist = Arrays.asList(formula.split(",")); if(!(graphlist.get

我在使用instanceof Double时遇到了一些问题,无论我是使用Double还是Double,无论我是在if语句上面还是下面进行解析,我都会出错

任何帮助都将不胜感激

更新:根据解析的位置,错误会有所不同,从无法比较字符串到明显的双精度。但也不能比较double和double,以及double的无效维度

List<String> graphlist = Arrays.asList(formula.split(","));

        if(!(graphlist.get(0) instanceof String || graphlist.get(1) instanceof String)){
        if(!(graphlist.get(2) instanceof Double|| graphlist.get(3) instanceof Double)){
                s.append("Invalid Graph Syntax.");
            }
        }
        lower = Double.parseDouble(graphlist.get(2));
        upper = Double.parseDouble(graphlist.get(3));   
您的笔划列表将只包含字符串,因为它是一个类型化列表。这就是为什么它会给你错误


你为什么要从中获取Double呢?

列表包含字符串,字符串从来都不是Double的实例。你想知道的是这个字符串是否可以代表一个Double?如果是,您可以使用以下功能:

private boolean isDouble(String arg) {
    try {
        Double d = Double.parseDouble(arg);
        return true;
    } catch (NumberFormatException | NullPointerException e) {
        return false;
    }
}
或者你只是把所有的东西都放在一个try-catch块中:

List<String> graphlist = Arrays.asList(formula.split(","));

if(!(graphlist.get(0) instanceof String || graphlist.get(1) instanceof String)){
    try {
        lower = Double.parseDouble(graphlist.get(2));
        upper = Double.parseDouble(graphlist.get(3));
    } catch (NumberFormatException | NullPointerException e) {
        s.append("Invalid Graph Syntax.");
    }
}

请包括错误为什么不把它放在一个try-catch块周围,让我们知道例外情况?如果你了解类型化容器是如何工作的?我建议你在问更多琐碎的问题之前先读一读关于他们的内容:以及