Java 为什么我需要初始化一个变量才能使用";toUpperCase“;方法

Java 为什么我需要初始化一个变量才能使用";toUpperCase“;方法,java,Java,这仅在初始化变量String convert时有效

这仅在初始化变量
String convert时有效toUpperCase()

当我刚设置代码时:

convert.toUpperCase();
return convert;
它不起作用。为什么?为什么我必须先初始化
转换

您应该在写

convert = t.toUpperCase();
由于
convert
变量可能未初始化。毕竟,您应该使用
t
参数初始化它。如果没有它,您将得到一个
NullPointerException
,编译器可以推断出这一点,只是拒绝编译代码


但是整个
convert
变量是可疑的。您也可以编写方法作为返回t.toUpperCase()
,但这会使整个类无用,除非您的目的是跟踪最后一个转换的字符串。

声明字符串时,其默认值为null。这与所有引用类型的行为相同

不能在空值中使用toUpperString()之类的函数

convert = t; //Here, convert is not null anymore
convert = convert.toUpperCase();
但是,您的函数非常简单,如果不使用convert执行任何操作,除了调用toUpperString(),最好将返回改为

return t.toUpperString
您必须初始化“convert”,因为在您的方法中没有名为convert的局部变量。您的方法是无用的,因为witt 1行可以转换您想要的每个字符串

但是,您的代码:

        public class YourClass {
           public static void main(String[] args){
              String convert = "Which string you prefere";
              convert.toUpperCase(); // You just finished
    }
}
您的代码错误,因为方法大写已存在!程序只会占用更多内存,这是没有用的!下面这个方法是错误的

    public class Conversion {
       String convert = "Your String here";
       convert = convertString(convert);

       public String convertString(String t){
// In any case if you want a variable convert in here(local), you have to declare it again.. But inside this method.
           t.toUpperCase();  // Your "t" is the string you passed over (convert)
           return t;
       }

因为不能对空对象调用方法。你认为这会有什么结果
null.toUpperCase()
为什么不这样做?空对象上的.toUpperCase()应该做什么呢?字符串#toUpperCase返回结果字符串,它不会将当前字符串修改为大写。因此,您必须使用as赋值来捕获它:
convert=。但是您可以在
t
上调用它,而不是通过第二次赋值来分配和调用它。但例如,如果用户输入是“hello”。因为convert=t;如何转换为空?现在应该是“你好”了,不是吗?谢谢你,先生,现在我知道了。我希望该方法能做些什么,但我知道它只会复制并修改它!这个答案是如何添加了未在发布的答案中添加的内容的?我创建了完整的程序如果他有一些问题,问题是什么?如果答案与其他人相似,他可以说服。
    public class Conversion {
       String convert = "Your String here";
       convert = convertString(convert);

       public String convertString(String t){
// In any case if you want a variable convert in here(local), you have to declare it again.. But inside this method.
           t.toUpperCase();  // Your "t" is the string you passed over (convert)
           return t;
       }