在java中一个变量让两个类共同使用,必须定义成static吗?

时间:2021-10-30 16:23:03
问题:在java中一个变量让两个类共同使用,必须定义成static吗?担心用static会造成内存泄露。有没有更好的方式?

11 个解决方案

#1


初始化好了,预先传递进去,也可以在两个类(或对象)之间共享共用。

#2


引用 1 楼 ldh911 的回复:
初始化好了,预先传递进去,也可以在两个类(或对象)之间共享共用。

楼上的”初始化好了,预先传递进去“是什么意思?不太明白。我主要是害怕用static引起内存泄露!

#3


调用的时候传参数或是对象

#4


既然两个类都需要用这个属性,可以将这些字段提取到基类的字段,只要初始化一边,以后所有子类都可以使用

#5


引用 3 楼 dreamslink2010 的回复:
调用的时候传参数或是对象

现在的情况是不能通过传递参数或者对象这种方式。期望有别的方式!

#6


通过定义一个变量,两个类共享的方法,那么这个变量必须要定义成static吗?能否定义成别的呢?

#7


引用 6 楼 fengtianyiyun 的回复:
通过定义一个变量,两个类共享的方法,那么这个变量必须要定义成static吗?能否定义成别的呢?

纠正:通过定义一个变量,两个类共享的方式,那么这个变量必须要定义成static吗?能否定义成别的呢?

#8


可以的,比如你在一个类中定义的内部类。

#9


我觉得定义成static比较好,如果怕被修改就加个final。如果定义成public,或利用参数传递也一样麻烦

#10


参考享元设计模式

#11


引用 10 楼 yaoweijq 的回复:
参考享元设计模式

赞成

#1


初始化好了,预先传递进去,也可以在两个类(或对象)之间共享共用。

#2


引用 1 楼 ldh911 的回复:
初始化好了,预先传递进去,也可以在两个类(或对象)之间共享共用。

楼上的”初始化好了,预先传递进去“是什么意思?不太明白。我主要是害怕用static引起内存泄露!

#3


调用的时候传参数或是对象

#4


既然两个类都需要用这个属性,可以将这些字段提取到基类的字段,只要初始化一边,以后所有子类都可以使用

#5


引用 3 楼 dreamslink2010 的回复:
调用的时候传参数或是对象

现在的情况是不能通过传递参数或者对象这种方式。期望有别的方式!

#6


通过定义一个变量,两个类共享的方法,那么这个变量必须要定义成static吗?能否定义成别的呢?

#7


引用 6 楼 fengtianyiyun 的回复:
通过定义一个变量,两个类共享的方法,那么这个变量必须要定义成static吗?能否定义成别的呢?

纠正:通过定义一个变量,两个类共享的方式,那么这个变量必须要定义成static吗?能否定义成别的呢?

#8


可以的,比如你在一个类中定义的内部类。

#9


我觉得定义成static比较好,如果怕被修改就加个final。如果定义成public,或利用参数传递也一样麻烦

#10


参考享元设计模式

#11


引用 10 楼 yaoweijq 的回复:
参考享元设计模式

赞成