Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 询问如何在Kotlin中使用变量_Android_Kotlin - Fatal编程技术网

Android 询问如何在Kotlin中使用变量

Android 询问如何在Kotlin中使用变量,android,kotlin,Android,Kotlin,我是编程新手,目前正在尝试学习如何使用Kotlin构建应用程序。我只是想问我是否应该在主活动类之外声明变量,然后在另一个活动中访问它。例如,在以下代码中: var post: ArrayList<Model> = ArrayList() class MainActivity : AppCompatActivity() { } var post:ArrayList=ArrayList() 类MainActivity:AppCompatActivity(){ }

我是编程新手,目前正在尝试学习如何使用Kotlin构建应用程序。我只是想问我是否应该在主活动类之外声明变量,然后在另一个活动中访问它。例如,在以下代码中:

   var post: ArrayList<Model> = ArrayList()
   class MainActivity : AppCompatActivity() { 
    }
var post:ArrayList=ArrayList()
类MainActivity:AppCompatActivity(){
}
我在main活动之外声明post-ArrayList,然后在第二个活动中,我可以访问它,而无需使用任何技术来传递和接收数据。我从未见过任何这样做的指示,我想知道为什么不应该这样做。
抱歉,如果我的问题很愚蠢。

一般来说,避免将数据放在全局可访问的属性中是一种良好的设计实践,因为这会增加应用程序的总体复杂性。我不是说代码行数,因为这样做实际上是减少代码行数

问题是它增加了代码不同元素之间的耦合。例如,如果多个类正在访问该列表属性,其中任何类都可能更改列表的内容,甚至更改它指向的列表。这会使跟踪涉及该属性的bug变得指数级困难,因为它可以从许多不同的地方进行修改,而且出于同样的原因,它也会在一开始就指数级地更容易导致bug

随着应用程序的发展,修改代码或更改设计也变得更加困难。当代码中可能有许多地方访问同一个列表时,在对其工作方式进行更改时,必须记住所有这些地方

而且,创建独立测试应用程序小部分的单元测试也很困难。为了正确地进行单元测试,您必须从所有可能的来源模拟列表中可能发生的所有事情

第二个问题是,数据在内存中的时间可能比需要的时间长,这是浪费


处理注释:没有理由把它们放在一个伴随对象中会更好。无论哪种方式,它们仍然是全局可访问的。

如果您想在活动之间发送数据,如果您想在片段之间发送数据,您可以使用intent和BUNDLE。我知道了,目前正在使用intent发送数据。我只是想问一下,如果我在类外设置变量,会不会对应用程序产生不良影响?最好在类内的
同伴对象中定义变量,正如Ramin所说,最好在同伴对象中定义变量,这意味着它们是静态的,当你想发送数据时可以访问它们