怎么在实现类里面获取接口的所有的实现对象

csdou 2015-02-05 02:35:08
接口I,实现类A,实现类B,想在A的对象a里面获取到B的对象b,不能用常规方法,我只能写A的代码,B的代码和接口我控制不了,多谢。
...全文
703 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
可乐罐 2015-02-06
  • 打赏
  • 举报
回复
我有一个思路,就是把给个可以找到的类的实例, 然后用instanceof I试试,如果是true那就是这个接口的实现类。
yongbuyanqi88888 2015-02-06
  • 打赏
  • 举报
回复
引用 7 楼 csdou 的回复:
太难了,B也不是单例,简单点说,就是想从内存中获取一个对象,如果是多例,就全部获取出来。
你是想在获取A类对象的同时获取B类的所有实例,不知我的理解是否正确
csdou 2015-02-06
  • 打赏
  • 举报
回复
引用 6 楼 yongbuyanqi88888 的回复:
你的常规方法指的是将B作为A的属性封装,然后进行Get吗
是的
csdou 2015-02-06
  • 打赏
  • 举报
回复
太难了,B也不是单例,简单点说,就是想从内存中获取一个对象,如果是多例,就全部获取出来。
yongbuyanqi88888 2015-02-06
  • 打赏
  • 举报
回复
你的常规方法指的是将B作为A的属性封装,然后进行Get吗
csdou 2015-02-06
  • 打赏
  • 举报
回复
引用 9 楼 yongbuyanqi88888 的回复:
[quote=引用 7 楼 csdou 的回复:] 太难了,B也不是单例,简单点说,就是想从内存中获取一个对象,如果是多例,就全部获取出来。
你是想在获取A类对象的同时获取B类的所有实例,不知我的理解是否正确[/quote] 差不多吧,我就想在A的方法里面获取到B,操作B的行为,说的好听点,就像两个心有灵犀的兄弟,兄弟A能获取到兄弟B在想什么,说不好听的,就是两个兄弟,兄弟A想控制兄弟B的行为符合兄弟A的利益。
csdou 2015-02-06
  • 打赏
  • 举报
回复
引用 11 楼 maradona1984 的回复:
其实你在B类的构造函数里,写一个保存该对象到某个静态的List或者map里即可,

public class B{
      public static List<B> b=new ArrayList<B>();
      public B(){
             b.add(this);
      }
}
如果这都不能做的话,那我真帮不了你了
多谢,B的代码我真的控制不了。
maradona1984 2015-02-06
  • 打赏
  • 举报
回复
其实你在B类的构造函数里,写一个保存该对象到某个静态的List或者map里即可,

public class B{
      public static List<B> b=new ArrayList<B>();
      public B(){
             b.add(this);
      }
}
如果这都不能做的话,那我真帮不了你了
zhangpeng9886123 2015-02-05
  • 打赏
  • 举报
回复
引用 4 楼 csdou 的回复:
直接new的不算,反射也不知道咋反射,就是获取内存中已经new过了的对象b
听你的意思好像是要获取已经创建过的对象b,是不是意味着对象b只有一个?如果是的话那就可以参照数据库连接connection那种写法单例模式得到这个对象了
csdou 2015-02-05
  • 打赏
  • 举报
回复
直接new的不算,反射也不知道咋反射,就是获取内存中已经new过了的对象b
-天宇 2015-02-05
  • 打赏
  • 举报
回复
……………………反射?
乔不思 2015-02-05
  • 打赏
  • 举报
回复
你这个常规方法指的是什么?
乔不思 2015-02-05
  • 打赏
  • 举报
回复
直接new不行么?

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧