You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确声明存储6元素double类型向量的ArrayList?

解决ArrayList的类型声明问题

嘿,我一眼就看出问题所在啦——你没给ArrayList指定正确的泛型类型!你要存储的是double数组,所以得把泛型参数明确写成double[]才行,不然编译器根本没法识别你要存的元素类型。

具体修改点:

  • 把方法的返回类型从ArrayList<>改成ArrayList<double[]>
  • 把manPlan的声明更新为ArrayList<double[]> manPlan = new ArrayList<>();

这样编译器就能准确识别你要存储的是double[]类型的对象,不会再出现类型不匹配的问题啦。

修改后的完整代码:

public static ArrayList<double[]> readFile(File file) throws IOException{ 
    // Array containing all spacecraft states 
    ArrayList<double[]> manPlan = new ArrayList<>(); 
    // File reader 
    BufferedReader reader = Files.newBufferedReader(file.toPath(), charset); 
    String line; 
    while ((line = reader.readLine()) != null) { 
        if (validLine.matcher(line).find()){ 
            // Build AbsoluteDate 
            String[] columns = line.split("\\s+"); 
            // Read orbital elements 
            double var1 = Double.parseDouble(columns[4]); 
            double var2 = Double.parseDouble(columns[5]); 
            double var3 = FastMath.toRadians(Double.parseDouble(columns[6])); 
            double var4 = FastMath.toRadians(Double.parseDouble(columns[7])); 
            double var5 = FastMath.toRadians(Double.parseDouble(columns[8])); 
            double var6 = FastMath.toRadians(Double.parseDouble(columns[9])); 
            double variables[] = {var1, var2, var3, var4, var5, var6}; 
            try { 
                manPlan.add(variables); 
            } catch (OrekitException e1) { 
                logger.error("Orekit error, failed to build SpacecraftState", e); 
            } 
        } 
    } 
    reader.close(); 
    return manPlan; 
}

额外小建议:

如果后续想让代码更易维护、更安全,可以考虑自定义一个类(比如OrbitalElements)来封装这6个double变量,而不是用数组。这样能避免数组的可变性问题,还能给每个变量起有意义的名字,代码可读性会提升不少~

内容的提问来源于stack exchange,提问作者oz380

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:23:21