Java 8.将Object []转换为String [] [] [英] Java 8. Casting Object[] to String[][]

查看:218
本文介绍了Java 8.将Object []转换为String [] []的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将文件中的数据加载到JTable中。因此,使用Java 8流可以很容易地将文件加载到字符串数组中:

I'm trying to load data from file into JTable. So, using Java 8 streams it is very easy to load file into array of strings:

BufferedReader br = new BufferedReader(new FileReader(f));
Object[] data = br.lines().map((s)->{
            String[] res = {s,"1"}; // Here's some conversion of line into String[] - elements of one row
            return res;
        }).toArray();
TableModel m = new DefaultTableModel( (String[][])data, cols);

但最后一行导致错误:线程AWT-EventQueue-0中的异常java.lang .ClassCastException:[Ljava.lang.Object;无法转换为[[Ljava.lang.Object。
如何将数据转换为String [] []?

But the last line results in error: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.Object. How can I cast data to String[][]?

推荐答案

如果使用 指定者(字符串[] [] :: new) 而不是 toArray()它将返回 String [] [] 而不是 Object [] ,你根本不需要把它强制转换(如果你把它分配给 String [ ] [] )。

If you use toArray(String[][]::new) instead of toArray() it will return a String[][] instead of an Object[] and you wont need to cast it at all (if you assign it to a String[][]).

这篇关于Java 8.将Object []转换为String [] []的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆