Java错误:找不到符号

时间:2015-10-08 03:44:50

标签: java compiler-errors compiler-warnings jgrasp

为CS类做一个java项目,需要我们用2个类(一个是测试者)制作一个dec到二进制转换器。老师坚持说我们不联系他寻求帮助。不确定我能做些什么,因为它告诉我“错误:找不到符号”并指向代码后半部分的pn.charAt。任何帮助或提示将不胜感激。

转换器

App.ToolboxMenuComponent = Ember.Component.extend({
  actions: {
    toggleTool: function(action, mode) {
      this.sendAction("action", this.get("item"), action, mode);
    }
  }
});

App.ToolboxMenuItemComponent = Ember.Component.extend({
  mode: null,
  didInsertElement: function() {
    this.set("mode", this.get("control").defaultState);
  },
  actions: {
    click: function() {
      let mode = this.get("mode");
      this.set("mode", !mode);
      this.sendAction("action", this.get("control").action, this.get("mode"));
    }
  }
});

测试类

public class BinaryNumber {
  private String n;

  public BinaryNumber(String pn) {
    n = pn;
  }


  public String getN() {
    return n;
  }



  public int convertToDecimal() {

    int bitPosition = 0;
    int sum = 0;

    for (int i = n.length() - 1; i >= 0; i--) {

      sum = sum + (int) Math.pow(2, bitPosition) * (pn.charAt + (i) - 48);
      //System.out.println(n.charAt (i));

    }
    return sum;
  }
  public int add(BinaryNumber obn) {
    return convertToDecimal() + obn.convertToDecimal();
  }
  public int sub(BinaryNumber obn) {
    return convertToDecimal() - obn.convertToDecimal();
  }

}

1 个答案:

答案 0 :(得分:0)

您的pn被定义为构造函数BinaryNumber()中的参数,因此它具有"本地范围",它不存在于函数外部。

您应该在convertToDecimal()中使用的内容将是您的全局变量n

如果pnn是字符串,那么您对charAt的使用也是不正确的,因为它被认为是一个函数。如果我不得不推断,我认为您是否尝试使用i作为charAt()定位?

修复这两个错误的更改如下所示:

sum = sum + (int) Math.pow(2, bitPosition) * (n.charAt(i) - 48);