有没有办法折叠全局变量?

Posted

技术标签:

【中文标题】有没有办法折叠全局变量?【英文标题】:Is there a way to collapse global variables? 【发布时间】:2017-09-01 21:19:21 【问题描述】:

我有一个包含 50 多个全局变量的 android 项目,我想折叠它们以使项目更整洁。

有没有办法做到这一点?

这个:

public class MainActivity extends Activity 

    private TextView texView1;
    private int value1;
    ...
    x50

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    

到这里:

public class MainActivity extends Activity 

    globalVariables();

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    

    private void globalVariables() 
        private TextView texView1;
        private int value1;
        ...
        x50
    

【问题讨论】:

简答无。为什么你有 50 个? 我的项目需要它们。 您可以创建一个“常量”类,在其中将全局变量设为静态并引用它们Constants.globalVar1。它会更干净,但如果可以的话,你应该尽可能地限制每个变量的范围。拥有这么多全局变量会使代码非常难以阅读。 这取决于collapse 是什么意思。如果你的意思是group tem,那么答案是YES,你可以:使用enums. 也许这个来源会对你有所帮助:***.com/questions/2344524/… 【参考方案1】:

步骤 1 在任何 java 类中定义区域如下:

//region GLOBAL_VARIABLES

put your 50 global variables inside this region
//endregion

第 2 步使用自动折叠/折叠区域:

转到文件 -> 设置 -> 编辑器 -> 常规 -> 代码折叠,然后检查“自定义折叠区域”

干杯。

【讨论】:

谢谢,这正是我需要的!【参考方案2】:

你可以做这样的事情:

public class MyClass extends AppCompatActivity 

    private MyVariables variables;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chat);

        variables = new MyVariables();
        variables.texView1 = (TextView) findViewById(R.id.my_text_view);
        variables.value1 = 10;
    

    private static class MyVariables 
        TextView texView1;
        int value1;
    

但是,如果您有超过 50 个全局变量,则说明您的代码有问题。

【讨论】:

以上是关于有没有办法折叠全局变量?的主要内容,如果未能解决你的问题,请参考以下文章

javaAndroid开发,如何定义全局变量?

在目标 c 中使用全局变量

在 SQL Server 中创建全局静态变量?

无需打开注册全局变量即可获取 IP 地址 [重复]

Angular 组件的全局 scss 变量,无需每次都导入它们

Python 3:跨模块的全局变量的可见性