java interface 中定义的class 是否是static 的验证

java interface 中定义的class 是否是static ,记得书本上有详细的介绍,由于自己也不想再翻书,突然想到用javap 分别反编译一下interface和class 中包含的class 文件。两者进行对比消除了自己的疑惑。

记录下来仅仅是为了日后拾遗。所以也不想为了分享而分享。

package com.zhi.learnj2;

public interface Food {
	class JackieZhi{
		private String name;
		public JackieZhi(String name){
			this.name = name;
		}
		public String getName() {
			return name;
		}
		@Override
		public String toString() {
			return name;
		}
	}
	enum XiaFanCai implements Food{
		
	}
}

class JTester {
	
	class JTesterInner{
		private String password;
		public JTesterInner(String password){
			this.password = password;
		}
		
		public String getPassword() {
			return password;
		}
	}
	
	public static void main(String[] args){
		//可以看出interface中的嵌套类是static 类型。的
//		Food.JackieZhi jackiezhi = new Food.JackieZhi("jackiehzi");
//		System.out.println(jackiezhi);
		
		JTesterInner jtesterinner = (new JTester()).new JTesterInner("[email protected]");
		System.out.println(jtesterinner.getPassword());
	}
	/**
class com.zhi.learnj2.JTester$JTesterInner {
  final com.zhi.learnj2.JTester this$0;  // 外部类对象的引用!
  public com.zhi.learnj2.JTester$JTesterInner(com.zhi.learnj2.JTester, java.lang.String);
  public java.lang.String getPassword();
}
	 */
}

猜你喜欢

转载自jackiezhi.iteye.com/blog/2267995