Class.isXXX方法
2016-01-11 17:57
260 查看
private static class TestInner{ private String pv = "私有变量"; } public static void main(String[] args) throws Exception{ //类继承、接口实现关系,Map可从HashMap转换 System.out.println("isAssignableFrom():"+Map.class.isAssignableFrom(HashMap.class)); //基本类型boolean, byte, char, short, int, long, float, and double. System.out.println("isPrimitive():"+int.class.isPrimitive()); //方法内部类 class TestLocal{}; System.out.println("isLocalClass():"+TestLocal.class.isLocalClass()); //成员内部类 System.out.println("isMemberClass():"+TestInner.class.isMemberClass()); /*AOP, generics, enums uses Java synthetic http://javapapers.com/core-java/java-synthetic-class-method-field/*/ TestInner inner = new TestInner(); String pv = inner.pv;//不访问私有变量将不生成方法 Class<?> c = inner.getClass(); Method[] methods = c.getDeclaredMethods(); for (Method m : methods) { System.out.println("isSynthetic(): " + m.isSynthetic() + " //" + m); } //TODO:何时Class.isSynthetic=true }
Class类片段参考:
private static final int SYNTHETIC = 0x00001000;//16的3次方=4096 public native int getModifiers(); public boolean isSynthetic() { return (getModifiers() & SYNTHETIC) != 0; }
Modifier类片段参考:
public static final int PUBLIC 1 public static final int PROTECTED 4 public static final int PRIVATE 2 public static final int ABSTRACT 1024 public static final int STATIC 8 public static final int FINAL 16 public static final int STRICT 2048 private static final int CLASS_MODIFIERS = Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE | Modifier.ABSTRACT | Modifier.STATIC | Modifier.FINAL | Modifier.STRICT; public static int classModifiers() { return CLASS_MODIFIERS; }
相关文章推荐
- Java反射随记
- AS3中的反射(速记) 分析
- C# 反射(Reflection)的用处分析
- C#通过反射创建自定义泛型
- 通俗易懂的C#之反射教程
- C#根据反射和特性实现ORM映射实例分析
- 深入反射生成数组的详解
- C#利用反射来判断对象是否包含某个属性的实现方法
- C#利用反射技术实现去掉按钮选中时的边框效果
- C#泛型和反射实例解析
- C# Dynamic关键字之:dynamic为什么比反射快的详解
- 传智播客学习之java 反射
- Java 反射之私有字段和方法详细介绍
- php使用反射插入对象示例分享
- java反射使用示例分享
- java利用反射实现动态代理示例
- 用户控件(ASCX)向网页(ASPX)传值使用反射实现
- 基于Java回顾之反射的使用分析
- c#反射调用方法示例
- C#通过反射获取当前工程中所有窗体并打开的方法