Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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
Java 不使用局部变量chaine2的值_Java - Fatal编程技术网

Java 不使用局部变量chaine2的值

Java 不使用局部变量chaine2的值,java,Java,我收到此错误消息:未使用局部变量chaine2的值 守则: package com.example.Projet_java; public class MyFirstClass { public static void main(String[] args) { { String chaine = new String("HELLO"), chaine2 = new String(); chaine2 =

我收到此错误消息:
未使用局部变量chaine2的值

守则:

package com.example.Projet_java;

public class MyFirstClass 
                         {
  public static void main(String[] args) {
     { String chaine = new String("HELLO"),
      chaine2 = new String();
      chaine2 = chaine.toLowerCase();
     }
                                         }
                          }
我试着遵循下面的思路 但是没有成功


有人知道我如何修复它吗?

您正在将一个对象设置为
chaine2

chaine2 = new String();
但是您会在下一行覆盖它,所以之前创建的空字符串不会用于任何内容

chaine2 = chaine.toLowerCase();
编译器发现它很奇怪,因为第一行是无用的,并且在逻辑错误的情况下警告您(尽管它是一个正确的程序,并且将正确编译和运行)

  • chaine2=new String()
    是冗余的。删除那个
  • 您应该使用
    chaine2
    的值,而当前您没有使用该值。例如,打印出来

  • 这是
    chaine2=newstring()
    您正在将一个新的
    String()
    分配给
    chaine2
    ,然后在下一行使用
    chaine2=chaine.toLowerCase()重新分配时立即丢弃它

    这是一个警告,而不是错误。这是编译器通知您创建从未使用过的变量的方式。这个变量是无用的,所以创建它没有意义。如果您正在学习Java,您可以忽略此警告,因为它不会阻止您的代码被编译和执行。这只是给你的一个提示:“嘿,你有一个不用的变量!也许你遗漏了什么?”

    局部变量chaine2的值没有被使用
    是一个警告,而不是一个错误

    您的IDE表示您从不使用变量
    chaine2
    ,也就是说,您既不在其他操作中使用它,也不将它存储在任何位置,也不在屏幕上打印它或任何东西。。。无论如何,您的代码将运行

    尽管在其他答案中有这样的说法,但警告对于那些可能导致错误的事情是非常有用的通知,因此在编程时它们非常有用,因为您的IDE会注意到您可能没有注意到的问题。因此,在学习Java时不应该丢弃它们


    编辑:如果您想获得小写的字符串“HELLO”,请不要再搜索。。。你说对了!唯一的一点是,您将它存储在一个变量
    chaine2
    中,但您不使用它做任何事情。。。 只要做:


    您将看到结果打印在控制台上。

    学习一种特定的语言,即使是在一开始,也不应该让程序员忘记仔细设计其算法。您的算法应该始终是尽可能最佳的

    Moderns IDE帮助您不要忘记;)=>一个无用的变量?(因为在您的情况下,
    chaine2
    在初始化后根本不使用)=>丢弃它


    因此,即使是对于一个简单的“Hello World”算法,您也应该真正注意您喜爱的IDE(或其他来源)发出的任何警告。

    这是IDE提供的一个指示器,告知您在这种情况下可能拥有一个无用的变量
    chaine2
    。顺便说一句,这不是编译错误。你是如何阅读该链接而不理解你的问题的?我从未见过比这更荒谬的大括号放置方式,而且,信不信由你,这不是偶然的。即使删除了
    =new String()
    ,编译器也会不断抱怨。OP未以任何方式使用
    chaine2
    的值,无论是第一个值还是第二个值。-1,用于建议忽略警告。他们告诉你一些你应该注意的事情,尤其是在你学习的时候。他们试图告诉你,你做了错事;仅仅因为它仍在编译和运行,并不意味着可以安全地忽略它。(它们永远不应该被忽略-它们被称为警告,而不是出于某种原因的提示。)好吧,你是一个理想主义者:)事实上,有时你必须忽略编译器警告-例如,当从ObjectInputStream读取序列化集合时。“未选中强制转换”警告无法执行任何操作。在我看来,在学习Java时忽略“未使用的”警告是很常见的:您正在创建大量的变量,而这样的警告并不重要。然后,您就做出了关于忽略警告的明智决定。这与一般性的“你可以忽略警告”不同,给一个明显的初学者这个建议绝对是糟糕的建议。(它们不称为“建议”或“提示”-之所以选择它们的名称表示潜在危险是有原因的。)谢谢你的建议,我真的很感激,并会记住这一点。很抱歉我的无知,但有人能给我写下关于上述代码的正确代码,以获得小写形式的字符串HELLO吗?即使我删除了“chaine2=new string();”,我仍然有消息。谢谢你的帮助他没有使用第二个值,也可以。但是在
    toLowerCase()
    赋值之后使用它将使该赋值消失;第一个仍然存在。如果在
    toLowerCase()
    之后不使用它,那么整个代码将变得毫无意义,您甚至不应该在一开始就费心编译和运行它。:-)是的,你已经准确地描述了它是怎样的。非常感谢你的回答!!谢谢大家对警告的建议!
    System.out.println("Printing chaine2: " + chaine2);