时月oe 2021-12-28 23:16 采纳率: 44.4%
浏览 25

java中如何实现父类向子类的转换?

我在写一个文件浏览器,大致需求为在一个ComboBox中添加当前目录下所有的文件夹名称

我是用File类中的listFiles()获取当前目录下所有的File对象,然后add到ComboBox中

但是他会把整个路径名给显示出来,我猜是因为comboBox在添加的时候自动调用了File的toString()方法了,但是我的目的是只显示文件夹的名字,所以我为File类创建了一个子类,然后重写了一下toString()方法,让他的toString()只返回文件夹的名字

但是我遇到了一个问题,当我使用下面的代码时

MyFile[] s = (MyFile[])file.listFiles();

遇到了报错,提示的内容大概是不能强制类型转化

java.lang.ClassCastException: class [Ljava.io.File; cannot be cast to class [LMyFile; ([Ljava.io.File; is in module java.base of loader 'bootstrap'; [LMyFile; is in unnamed module of loader 'app')
    at CompilerUI.initComb(CompilerUI.java:65)
    at CompilerUI.initialize(CompilerUI.java:111)
    at CompilerUI.<init>(CompilerUI.java:46)
    at Main$1.run(Main.java:15)

请问我应该如何进行转化,或者说我为了实现这个功能可以换一种别的思路吗?

  • 写回答

3条回答 默认 最新

  • fuill 2021-12-29 01:30
    关注

    String[] filelist1 = file.list();
    String[] filelist2 = file.list();
    对filelist1由后往前扫描,遇到两个文件夹名称之间的/就停止
    然后把停止点后面的内容复制到filelist2里

    评论

报告相同问题?

问题事件

  • 创建了问题 12月28日

悬赏问题

  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 关于移动机器人坐标计算
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音