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>