带下划线的变量

时间:2015-12-23 21:18:29

标签: android android-studio

我在Android Studio上的某些变量中有下划线(在这种情况下,在' position'变量中)。我认为这不是一个错误,因为应用程序运行完美,编译器将所有内容都传递好。 我想知道这意味着什么?

enter image description here

6 个答案:

答案 0 :(得分:20)

可能是“重新分配参数”的标志

enter image description here

答案 1 :(得分:19)

我认为带下划线的变量代表常量(final或effectively final),因为根据我的经验,当我声明一个final对象在匿名类中使用时,我只看到这种装饰。但是,我似乎无法在文档中找到它。

答案 2 :(得分:8)

我找到了这个问题的答案here

装饰是语法突出显示首选项。看看File > Settings > Editor > Color Scheme > Java/Kotlin

对于Java,您可以在Parameters > Implicit anonymous class parameter找到此效果。这是复选框Effects

enter image description here

Properties and Variables > Var (mutable variable, parameter or property)的Kotlin一样。

enter image description here

答案 3 :(得分:2)

这意味着变量是在当前方法之外声明的。例如,在这种情况下,position可能被声明为new DialogInterface.OnClickListener()之外的类成员,在您正在实施onItemLongClick()方法的类中。

它们被声明为:

public class MyClass{
    private int position;

    // Other code...

}

答案 4 :(得分:1)

这可能是因为不可变变量受到了修改。就像重新分配一个String或尝试修改最终声明的变量一样。

import os
import time


source = ['"Users/ketiaslanishvili/Desktop/Video"' ]

target_dir = 'Users/ketiaslanishvili/Desktop'
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S')+'.zip'
zip_command = "zip -qr {0} {1}" .format(target, '' .join(source))


if os.system(zip_command) == 0:
    print('Completed', target)
else:
    print('Unsucsesful:((((((')

将在缓冲区下划线,因为字符串是不可变的对象。

答案 5 :(得分:0)

如果您知道side effect in programming是什么,那么对您来说将很容易。为了保护您的变量免受副作用的影响,IDE会将下划线显示为警告。有时候这对于减少代码中的逻辑错误很有帮助。