为了账号安全,请及时绑定邮箱和手机立即绑定

从主类中的静态方法访问列表,在java中不同类的另一个方法中

从主类中的静态方法访问列表,在java中不同类的另一个方法中

慕婉清6462132 2021-10-28 14:08:24
我有一个问题,这对专家来说可能是基本问题。但我不是java专家。所以我不知道也无法在谷歌中找到很多细节。希望有人可以帮助我。我想从 Main 类中存在的方法访问一个 List,以便在不同包中不同类的另一种方法中使用。所有访问修饰符都是公开的。这可以在java8中访问吗?public class Main {public static void main(String[] args) throws IOException {        initTariffData() ;        ....        ....}public static void initTariffData() {  List<List<Object>> SlotList = null;   .......   .......  for(int innerloop=0; innerloop<(CostList.size());innerloop++) {                        newList = new ArrayList<>();                        newList.add(PowerList.get(innerloop));                        newList.add(DurationsList.get(innerloop));                        newList.add(CostList.get(innerloop));                        SlotList.add(newList);  //Lists of all slots for 7 days                    }          }}另一堂课:public class MyModel implements TariffModel {.....//Here I want to access the List "Slotlist" from the function "initTariffData" in main class....}我希望我的问题很清楚并提供必要的信息。如果还不清楚,请告诉我。我在谷歌搜索了很多,但是关于从 Main 类中的不同方法访问变量到另一个包类的信息并不多。
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

另一个类中的代码可以访问的是类的成员(方法和字段)。您的列表不是类的成员,而是方法中的局部变量。它仅在某个线程执行该方法时存在。如果两个或多个线程同时执行该方法,则该局部变量的实例/外观同样多。那么在这种情况下,您希望“访问”哪个,而在没有的情况下,您认为“访问它”会产生什么结果?


查看完整回答
反对 回复 2021-10-28
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

不是对问题的直接回答,而只是一些陈述来说服您(希望如此)您正在尝试做的事情是不正确的。

您不是在 OOP 光学中进行推理。Java 是面向对象的语言,因此它建议隔离对象中的状态和行为。如果您有 2 个对象,看起来,并且您需要从第二个对象中的第一个对象访问特定属性,则意味着关注点分离没有做好。或者这两个对象可能有一些共同点,在这种情况下,它们可能应该在继承树中相关联。

作为一般规则,除非绝对必要,否则对象不应直接将其状态暴露给其他对象。


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信