为了账号安全,请及时绑定邮箱和手机立即绑定

复制代码时出现不兼容类型错误

复制代码时出现不兼容类型错误

慕仙森 2022-09-14 10:40:53
我在一个程序中设置一个记录器,但使用了另一个程序中的一些代码。我可以修复所有错误,除了收集器返回的不兼容类型错误。错误:https://i.imgur.com/ak5pCEb.png我得到的回报:https://i.imgur.com/Ox6aCjw.png我需要的回报:https://i.imgur.com/JlLNPvz.png该列表应返回一个字符串数组,但此时仅返回一个对象数组。我不能将其转换为字符串数组,也不能将mLines数组更改为对象数组,因为这会导致代码中以后出现问题。这些函数背后的代码是本机java,因此更改此代码会更改其计算机上的所有位置。任何想法如何解决这个问题?private static class LogcatAdapter extends BaseAdapter {        private List<String> mLines = Collections.emptyList();        void reload() {            try {                Process process = Runtime.getRuntime().exec("logcat -d -t 500 -v time");                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));                mLines = reader.lines().collect(Collectors.toList());            } catch (IOException e) {                StringWriter str = new StringWriter();                e.printStackTrace(new PrintWriter(str));                mLines = Collections.singletonList(str.toString());            }            notifyDataSetChanged();        }        @Override        public String toString() {            return BuildConfig.APPLICATION_ID + " " + BuildConfig.VERSION_NAME + "\n" +                   mLines.stream().collect(Collectors.joining("\n"));        }        @Override        public int getCount() {            return mLines.size();        }        @Override        public String getItem(int position) {            return mLines.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View view, ViewGroup parent) {            if (view == null) {                view = LayoutInflater.from(parent.getContext())                    .inflate(R.layout.item_logline, parent, false);            }            String line = getItem(position);            ((TextView) view.findViewById(R.id.text)).setText(line);            return view;        }    }
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

您可以指定“手动”调用的:TtoList

mLines = reader.lines().collect(Collectors.<String>toList());

但这不应该是必要的。这似乎是IntelliJ中的一个错误,代码实际上编译并运行良好。


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信