利用接口解决Java工程间循环引用而报错的问题
来源:互联网 发布:java ant jar包 编辑:程序博客网 时间:2024/05/24 01:31
解决Eclipse中Java工程间循环引用而报错的问题
如果我们的项目包含多个工程(project),而它们之间又是循环引用的关系,
那么Eclipse在编译时会抛出如下一个错误信息:
“A cycle was detected in the build path of project: XXX”
解决方法非常简单:
Eclipse Menu -> Window -> Preferences... ->
Java -> Compiler -> Building -> Building path problems -> Circular dependencies ->
将Error改成Warning。
但是在Android中
发现循环引用后不能正常build了,找不到Android的apk,所以不适用,寻求另一种方法如下:
利用接口生成副本回调的方法就好,这样可以避免循环引用,也许可以认为接口是那个实例的一份副本
创建接口回调
* 1.新建一个接口让Test2实现,相当于Test2的一份副本
* 2.在Test2中通过setTest2duplicate(Test2duplicate test)方法传递给Test一个实例
* 3.运行Test2的main方法,调用Test的方法,接着在Test的方法中就可以调用回Test2的方法了
Test.java
public class Test {//新建一个Test2的实例public static Test2duplicate test2 = null;//提供设置Test2实例的方法public static void setTest2duplicate(Test2duplicate test){System.out.println("获取到一个test2");test2 = test;}public static void sayHello(){System.out.println("Hi,this is Test!not Test2...");if (test2 !=null) {test2.sayHello2();}else {System.out.println("test2 is null!");}}
Test2.java
/** * @author Juhn.Xu * 2012-8-20 * <p> * 先调用Test的方法,再回调自己的方法 * </p> */public class Test2 implements Test2duplicate{public Test2() {}public static void main(String[] args) {//先运行Test的方法,此时未传递Test2的实例Test.sayHello();//传递一个Test2的实例给 TestTest.setTest2duplicate(new Test2());//再运行Test的方法Test.sayHello();}public void sayHello2(){System.out.println("Hi,this is Test2");}}
Test2duplicate.java
/** * @author Juhn.Xu * 2012-8-20 * <p> * 作为Test2的一个副本,提供Test2的sayHello2()方法 */public interface Test2duplicate {public void sayHello2();}
- 利用接口解决Java工程间循环引用而报错的问题
- 解决Eclipse中Java工程间循环引用而报错的问题
- 如何解决Eclipse中Java工程间循环引用而报错的问题
- 解决Eclipse中Java工程间循环引用而报错的问题
- 如何解决block 循环引用的问题
- 解决studio下导入工程gradle报错的问题.
- Maven 引用父工程下的子工程报错
- Swift 解决循环引用问题
- 解决循环引用问题系列
- c++ 互相引用导致无限循环引用的报错
- DirectX 3D中解决因窗口最小化而报错的问题
- 如何解决误添加调试文件而报错的问题?
- block:解决成员变量的循环引用的问题
- block:解决成员变量的循环引用的问题
- 解决FastJson的$ref循环引用检测的问题
- 利用java中for循环,递归解决机选双色球问题
- 20170728 JAVA利用循环和选择语句解决ATM问题
- 循环引用的问题...
- Extjs-局部更新新页面内容 Ext.Updater
- 呼叫中心IVR自动外呼的简单整理
- 初学Android,图形图像之Matrix(二十九)
- zoj2405 ------------Specialized Four-Digit Numbers
- flex使用cookie
- 利用接口解决Java工程间循环引用而报错的问题
- Android 联系人数据库介绍以及对联系人的基本操作
- adb shell dumpsys 命令 查看内存
- linux下访问windows共享目录问题记录
- 文件上传总结
- ora-09817 无法写入审计文件
- 如何辨别真假IPHONE4 , IPHONE 4S ?
- oracle实现日期加一天的时间
- Extjs-数据格式化 Ext.util.Format