java - 安卓工作室说 'Local variable is redundant'

标签 java android android-studio refactoring

<分区>

我在许多方法上收到警告,说局部变量是多余的

这是一个示例方法:

public MyObject getMSListItem(int pos) {
    MyObject li = getItem(pos);
    return li;
}

现在看来,我想,我可以这样做来修复它:

public MyObject getMSListItem(int pos) {
    return  getItem(pos);
}

另一个例子:

public String getTeacher(int pos) {
    ffTeacherListItem t = getItem(pos);
    String teacher = t.teacher;
    return teacher;
}

似乎这可能是:

public String getTeacher(int pos) {
    ffTeacherListItem t = getItem(pos);
    return t.teacher;
}

或者按照下面的建议,甚至更好!

public String getTeacher(int pos) {
    return  getItem(pos).teacher;
}

真的有这方面的“最佳实践”吗?一种方法比另一种更好吗?还是仅与代码可读性有关?

最佳答案

Is there really a "best practice" for this? Is one way better than the other? Or is it just about code readability and nothing more?

简体说:在你的场景中没用。这没有错,但你为什么要这样做:

ffTeacherListItem t = getItem(pos);
String teacher = t.teacher;
return teacher;

当你可以做同样的事情时:

ffTeacherListItem t = getItem(pos);
return t.teacher;

或者你也可以这样做:

return getItem(pos).teacher;

以上所有内容都相同,但第二个和第三个代码更清晰,您应该始终尝试编写没有无用行和引用的干净代码1。还有一条不成文的规定 - 代码越少,错误越少

1这是像 C++ 这样没有垃圾收集器的语言的“优势”,你要对你创建的所有对象和实例负责(它们从内存中释放等)。 ).因此,在决定创建某个对象的新实例之前,您需要考虑更多。

关于java - 安卓工作室说 'Local variable is redundant',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23159351/

相关文章:

android-studio - 如何让 Android studio 将 Android things raspberry PI 视为部署目标

java - 当用户触摸屏幕(外部)时如何隐藏对话框?

java - MapBox 地点选择器导致致命信号 6

c - 如何在 Android Studio 上为 native C 代码调试 Fatal Signal 6 崩溃?

Android RatingBar(填充下一颗星)

android - 如何使用微调器并从android中的数组填充它

android - 依赖于 Google Play Services 11.0.0 的应用未在 Android Studio 模拟器上运行

java - 无法通过 KSOAP Android 登录到 Web 服务

java - 微服务架构中如何使用feign客户端上传多个Multipart文件

java - hibernate 与缓存的连接过多