有的类编译后出现classname$1.class,classname$2.class,请各位解释一下,谢谢

java_develop 2006-01-07 11:04:43
rs:
...全文
216 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
humanity 2006-01-15
  • 打赏
  • 举报
回复
如果没有名字而是 $1 $2 就表示 匿名类。

public class A{
public static void main(String[] args){
System.out.println(new Object()
{public String toString(){return getClass().getName();}
);
}
}
humanity 2006-01-15
  • 打赏
  • 举报
回复
public class A{
public class B {

}
public static class C{
private static class D{

}
}
}

你 编译一下看看生成了多少个 .class 文件?

java_develop 2006-01-15
  • 打赏
  • 举报
回复
装载应该在运行期吧?应该不再编译的时候。那位大虾能解释一下,谢谢!
susan930 2006-01-07
  • 打赏
  • 举报
回复
同上
j2me_home 2006-01-07
  • 打赏
  • 举报
回复
有内部匿名类
java_develop 2006-01-07
  • 打赏
  • 举报
回复
楼主的classname$1.class,classname$2.class是因为一个类在多次被ClassLoader加载,

请问一下编译class 也会被classloader加载么?
lovelong1981 2006-01-07
  • 打赏
  • 举报
回复
表示该类包含子类,
swantt 2006-01-07
  • 打赏
  • 举报
回复
也可能有两个类,名字分别为1,2哦。呵。
crazycy 2006-01-07
  • 打赏
  • 举报
回复
1 如果是内部匿名类 命名方式应该是 A$B.class
2 楼主的classname$1.class,classname$2.class是因为一个类在多次被ClassLoader加载,它又不是一个单例,也可能是每个版本不一样,编译时没有删除起先的而又生成了一个新的也用$+数字来区分

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧