错误:不兼容的类型:java.lang.String无法转换为String

时间:2018-01-26 09:19:58

标签: java

我正在上大学的Java课程,并正在处理一些特定的任务。这是我为它写的代码。

public class String
{
 public static void main(String[] args)
 {
  String city = "San Francisco";
  int stringLength = city.length();
  char oneChar = city.charAt(0);
  String upperCity = city.toUpperCase();
  String lowerCity = city.toLowerCase();

  System.out.println(city);
  System.out.println(stringLength);
  System.out.println(oneChar);
  System.out.println(upperCity);
  System.out.println();
  }
 }

产生了这些结果

C:\Users\sam\Documents\Java>javac String.java
String.java:8: error: incompatible types: java.lang.String cannot be 
converted to String
          String city = "San Franciso";
                        ^
String.java:9: error: cannot find symbol
            int stringLength = city.length();
                                   ^
symbol:   method length()
location: variable city of type String
String.java:10: error: cannot find symbol
            char oneChar = city.charAt(0);
                               ^
symbol:   method charAt(int)
location: variable city of type String
String.java:11: error: cannot find symbol
            String upperCity = city.toUpperCase();
                                   ^
symbol:   method toUpperCase()
location: variable city of type String
String.java:12: error: cannot find symbol
            String lowerCity = city.toLowerCase();
                                   ^
symbol:   method toLowerCase()
location: variable city of type String
5 errors

我试过寻找答案,但我找不到任何有用的东西。感谢任何帮助。谢谢。

3 个答案:

答案 0 :(得分:5)

由于您的班级名为String,因此String city中的非限定类型参考会被视为您自己班级的参考。

将类重命名为其他名称,或者只要引用“内置”Java java.lang.String类,就必须编写String

答案 1 :(得分:4)

系统类java.lang.String和名为String的类之间存在冲突。将您的类String重命名为MyString,即替换line:

public class String

public class MyString

将包含此类的文件String.java重命名为MyString.java。

答案 2 :(得分:-4)

您无法为您的班级字符串命名,因为这是一个类似于 double else 的保留字。

以下是保留的Java关键字列表:https://en.wikipedia.org/wiki/List_of_Java_keywords