Java中.class文件命名规则

时间:2020-12-19 19:54:53

Java类中带有内部类和匿名类编译的class文件命名规则:

内部类的class文件命名是:主类+$+内部类名
匿名类的class文件命名是:主类+$+(1,2,3....)

普通的全类名:com.yt.test.Outer2
匿名内部类:com.yt.test.Outer1$1
内部类:com.yt.test.Outer2$Inner

public class Outer1 {
  public void test(){
    JButton btn=new JButton("test");
    //ActionListener将编译成Outer1$1
    btn.addActionListener(new ActionListener() {
      
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("test");
      }
    });
  } 
}

public class Outer2 {
  //Inner将编译成Outer2$Inner
  public class Inner{
  }
}

下面是SpringMVC的配置文件,如果想写扫描包的代码,那么就可以直接遍历.class文件目录,因为.class文件的目录跟全类名是完全一样的。

我去研究这个,也只是为了过滤出匿名内部类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

    <!-- scan the package and the sub package -->
    <context:component-scan base-package="com.spring.controller.*" />
</beans>