我在Android Studio上的某些变量中有下划线(在这种情况下,在' position'变量中)。我认为这不是一个错误,因为应用程序运行完美,编译器将所有内容都传递好。 我想知道这意味着什么?
答案 0 :(得分:20)
答案 1 :(得分:19)
我认为带下划线的变量代表常量(final或effectively final),因为根据我的经验,当我声明一个final
对象在匿名类中使用时,我只看到这种装饰。但是,我似乎无法在文档中找到它。
答案 2 :(得分:8)
我找到了这个问题的答案here。
装饰是语法突出显示首选项。看看File > Settings > Editor > Color Scheme > Java/Kotlin
对于Java,您可以在Parameters > Implicit anonymous class parameter
找到此效果。这是复选框Effects
。
与Properties and Variables > Var (mutable variable, parameter or property)
的Kotlin一样。
答案 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会将下划线显示为警告。有时候这对于减少代码中的逻辑错误很有帮助。