【问题标题】:Cannot find symbol java error找不到符号java错误
【发布时间】:2016-07-22 14:48:55
【问题描述】:

我对 java 和编程比较陌生。我正在尝试为分配给我的任务编写程序。但是,我收到以下错误:

cannot find symbol
symbol: variable carMake
location: class CarTransferClient

以下代码行中的每个变量都会出现此错误:

System.out.println("Result = " + carTransfer(carMake, carModel, carEngine, carPetrolDiesel, location, destination, distance));

这是我正在尝试编写的部分的完整代码:

public class CarTransferClient {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Result = " + carTransfer(carMake, carModel, carEngine, carPetrolDiesel, location, destination, distance));
    }

    private static String carTransfer(java.lang.String carMake, java.lang.String carModel, java.lang.String carEngine, java.lang.String carPetrolDiesel, java.lang.String location, java.lang.String destination, java.lang.String distance) {
        webservices.CarTransfer_Service service = new webservices.CarTransfer_Service();
        webservices.CarTransfer port = service.getCarTransferPort();
        return port.carTransfer(carMake, carModel, carEngine, carPetrolDiesel, location, destination, distance);
    }
}

我做错了什么,如何解决?

如果有帮助,我得到了以下工作代码作为示例:

public class ConvertClient {

public static void main(String[] args) {
        System.out.println("Result = " + feetToMetres(1));
}

private static String feetToMetres(double feet) {
        webservices.Convert_Service service = new webservices.Convert_Service();
        webservices.Convert port = service.getConvertPort();
        return port.feetToMetres(feet);
}
}

【问题讨论】:

  • 如果你想像这里想要的那样调用字符串文字,你必须像这样用引号括起来:carTransfer("carMake", "carModel", "carEngine", "carPetrolDiesel", "location", "destination", "distance")。或者你实例化这些变量并给它们字符串值。此外,为了简单/可读性,您不必使用包调用 String (java.lang.String),只需 String 就可以了
  • @Maljam 感谢您的快速回复。但是,我不认为这是正确的。如果有帮助,我已经添加了一个工作示例,如果这有帮助?

标签: java class variables symbols


【解决方案1】:

您在 System.out 中的 carMakecarModel 等正在寻找名为 carMakecarModel 的变量。您需要在调用之前声明它们。

public static void main(String[] args) {
    String carMake = "Make";
    String carModel = "Model";
    String carEngine= = "Engine";
    String carPetrolDiesel = "Diesel";
    String location = "Location";
    String destination = "Destination";
    String distance = "Distance";

    System.out.println("Result = " + carTransfer(carMake, carModel, carEngine, carPetrolDiesel, location, destination, distance));
}

【讨论】:

  • 感谢您的快速回复。但是,我不认为这是正确的。如果有帮助,我已经添加了一个工作示例,如果这有帮助?
  • 你是什么意思,“我不认为这是正确的”。你试过了吗?
【解决方案2】:

当您调用打印方法System.out.println() 时,您必须为其提供有效参数。在您的情况下,这些参数必须是已实例化的 String 变量或类似于 "string literal example" 的字符串文字。

您不能发送方法或任何方法,程序“不知道”的变量。

这是String 变量(或String 对象)String name = "fred"; 的示例,fred 将是字符串文字。

【讨论】:

  • 感谢您的快速回复。但是,我不认为这是正确的。如果有帮助,我已经添加了一个工作示例,如果这有帮助的话?
  • 是的,我说在你的情况下你必须向它发送一个字符串文字或字符串对象变量。但我确实离开了你,你可以向它发送其他原始类型文字或变量,例如 int、float、double 等。
  • 在您提供的工作示例中,方法 feetToMetres(1) RETURNS returns feet(它是对 int 的引用)。这是 print() 方法的有效参数
  • 这也有助于了解您正在尝试做什么。似乎您正在返回一个方法调用,并且会导致无限循环。
【解决方案3】:

问题是没有用于 carMake、carModel 等的变量。 carTransfer(汽车制造商、汽车型号、汽车发动机、汽车汽油柴油机、位置、目的地、距离) 有了这个,您基本上告诉 java 寻找名为 carMakecarModel 等的变量,但您没有初始化这些变量,它们不存在。如果要传递字符串,请使用“-sign”。例如:

 System.out.println("Result = " + carTransfer("Make", "some model", "some engine", "some petrol diesel", "some location", "some destination", "some distance"));

【讨论】:

  • 感谢您的快速回复。但是,我不认为这是正确的。如果有帮助,我已经添加了一个工作示例,如果这有帮助?
  • 您是否尝试过我的回答,或者您只是认为这不正确?如果您尝试了我的答案,但仍然有错误,是一样的吗?如果没有 - 你能把错误贴在这里吗?
猜你喜欢
  • 2013-05-20
  • 2013-12-06
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 2015-02-22
相关资源
最近更新 更多