idea 这是个啥?咋做到的?

发布于 2022-09-12 00:47:28 字数 114 浏览 13 评论 0

工程是el-admin,第一次见到
搜狗截图20年01月17日1249_1.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

锦爱 2022-09-19 00:47:29

首先纠正一下,楼上的答案是错误的,它列出来的代码显示的结果不叫子类,叫内部类
然后上答案:因为在一个.Java源文件中出现了多个类,而导致javac指令编译生成了多个对应的.class文件。其内部代码是这样的结构:

public class RedisConfig {
   
}

class FastJsonRedisSerializer {
    
}
    
class StringRedisSerializer {
    
}

在Java中,一个.java源文件中,可以有许多个类,但只能有一个public的类,并且public的类名必须与文件名一致。当然,一个文件中可以只有非public类,这时文件名可以跟类名不同。
至于为什么一个Java源文件中只能有一个public类,可以参考《Java编程思想》的6.4节-类的访问权限:

  1. 每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出错误信息。
  2. public类的名称必须完全与含有该编译单元的文件名相同,包含大小写。如果不匹配,同样将得到编译错误。
  3. 虽然不是很常用,但编译单元内完全不带public类也是可能的。在这种情况下,可以随意对文件命名。
酸甜透明夹心 2022-09-19 00:47:28

嵌套类就行了

public class RedisConfig {
    public class FastJsonRedisSerializer {
    }
    
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文