Java日记——获取内部类的几种方式
来源:互联网 发布:淘宝违规12分 编辑:程序博客网 时间:2024/05/23 02:02
内部类用于增强类与类的耦合关系,也是经常会用到的,下面是几种在静态方法中获取内部类的方式
1.内部类设为静态类
public class TestInnerClass { public static class InnerClass { public void hi(){ System.out.println("hi"); } } public static void main(String[]args){ InnerClass innerClass=new InnerClass(); innerClass.hi(); }}
2.实例化对象后调用public方法
public class TestInnerClass { class InnerClass { public void hi(){ System.out.println("hi"); } } public InnerClass getInnerClass(){ InnerClass innerClass =new InnerClass(); return innerClass; } public static void main(String[]args){ TestInnerClass testInnerClass=new TestInnerClass(); InnerClass innerClass=testInnerClass.getInnerClass(); innerClass.hi(); }}
3.直接实例化
public class TestInnerClass { class InnerClass { public void hi(){ System.out.println("hi"); } } public static void main(String[]args){ InnerClass innerClass=new TestInnerClass().new InnerClass(); innerClass.hi(); }}
4.利用反射
public class TestInnerClass { class InnerClass { public void hi(){ System.out.println("hi"); } } public static void main(String[]args){ try { //1.需要外部类的实例 TestInnerClass testInnerClass=new TestInnerClass(); //2.需要外部类的Class Class clazz=TestInnerClass.class; //2.需要内部类的Class Class c2 = InnerClass.class; //3.获得内部类的构造器 Constructor con2 = c2.getDeclaredConstructor(clazz); //4.把构造器设为可用 con2.setAccessible(true); //5.利用构造器生成内部类实例 InnerClass innerClass1 = (InnerClass) con2.newInstance(testInnerClass); innerClass1.hi(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } }}
阅读全文
0 0
- Java日记——获取内部类的几种方式
- java学习日记——Inner Class(内部类)
- java学习日记_49:内部类的位置和访问方式
- java内部类的几点体会
- java—内部类
- Java—内部类
- java中匿名内部类的两种实现方式
- java中匿名内部类的两种实现方式
- Java 内部类的访问方式
- java内部类的创建方式
- Java反射获取内部类的实例
- Java反射获取内部类的实例
- java学习日记-内部类的访问特点?
- java内部类及四种内部类的实现方式
- 内部类的几种形式
- 内部类的几种样式
- 朝花夕拾——Java的内部类
- java获取properties的几种方式
- 机器学习心得01 线性回归 linear regression
- Spring_03
- Eclemma安装失败原因之一
- HTML5实现异步上传(不用uploadify等前端上传插件)
- vmware workstation 创建虚拟机与克隆虚拟机
- Java日记——获取内部类的几种方式
- 实例探索Java模式之路——建造模式
- 利用jquery.form.js的ajaxSubmit实现不跳转提交表单数据
- 移动端返回上一页,刚需!document.referrer 详解
- 单例模式singleton —— I
- NYOJ-7街区最短问题
- 利用pushState开发无刷页面切换
- [P1290]欧几里德的游戏
- JAVA高级工程师课程笔记整理——(五)XML解析