JAVA静态上下文引用问题
来源:互联网 发布:青岛seo服务 编辑:程序博客网 时间:2024/05/29 11:28
今天写程序碰上这么个问题
class ArrayAlg{ class Pair{ private int max; private int min; public Pair(int max, int min) { this.max = max; this.min = min; } public int getMax() { return max; } public int getMin() { return min; } } public static Pair minmax(int[] arr) { int max=Integer.MIN_VALUE; int min=Integer.MAX_VALUE; for(int i:arr) { if(i>max)max=i; if(i<min)min=i; } return new Pair(max,min); //报错:无法从静态上下文中引用非静态变量this }}
想了想发现问题所在,于是把代码改成这样就可以通过编译:
class Pair{ private int max; private int min; public Pair(int max, int min) { this.max = max; this.min = min; } public int getMax() { return max; } public int getMin() { return min; }}class ArrayAlg{ public static Pair minmax(int[] arr) { int max=Integer.MIN_VALUE; int min=Integer.MAX_VALUE; for(int i:arr) { if(i>max)max=i; if(i<min)min=i; } return new Pair(max,min); }
因为在静态方法minmax中最后返回了一个Pair实例,如果Pair是ArrayAlg的一个内部类的话,当ArrayAlg未实例化时,是不存在Pair的,因此调用Pair的构造方法肯定报错。
把Pair拉出来是一种解决方法,另一种便是在ArrayAlg内部把Pair定义为静态内部类,那么就可以直接使用Pair了。
1 0
- JAVA静态上下文引用问题
- Spring Boot+thymeleaf 静态资源上下文的问题
- Java中静态方法(上下文)的使用
- 上下文静态保持器
- Java父类引用指向子类对象静态绑定和动态绑定问题
- java String类有关静态变量,常量池,引用对象的问题
- linux静态库引用顺序问题
- JAVA引用传递问题
- Java中的引用问题
- java引用的问题
- JAVA引用传递问题
- java中的引用问题
- PHP 引用 返回引用 静态变量的问题
- JAVA中MESSAGEBOX,静态类直接引用
- struts2 ognl 中引用java静态变量
- Java向前引用和静态初始化
- java静态方法中不能引用非静态变量
- Java中静态方法不能引用非静态变量
- Java
- 符号三角形
- Git命令那些事,文章还在更新中...
- 分类游戏
- unit13
- JAVA静态上下文引用问题
- Centos7搭建代理服务器Shadowsocks
- Eclipse在线安装Drools插件
- 题目1130:日志排序
- 判断获取的数据是不是number类型
- Volley框架请求取消的实现
- Rp-800旧版废弃代码的研究文档
- 人月神话之四 贯彻执行、为什么巴比伦塔会失败
- 用A*算法解决八数码问题 MATLAB