Java 将项目导入到另一台计算机时出现编码错误

Java 将项目导入到另一台计算机时出现编码错误,java,Java,我有一个项目,我创造了完美的工作没有任何错误时,在家里做它。然而,当我将项目导入学校的计算机时,我从两个不同的班级中得到两个代码错误 第一个错误 主类 bank.getAccounts().forEach((i,b)->System.out.println(b)); bankAccounts.remove(bankAccount.getAccountId(), bankAccount); 非法启动(类型)应为 非法开始表达;预期的 第二个错误 银行流程类 bank.getAccount

我有一个项目,我创造了完美的工作没有任何错误时,在家里做它。然而,当我将项目导入学校的计算机时,我从两个不同的班级中得到两个代码错误

第一个错误

主类

bank.getAccounts().forEach((i,b)->System.out.println(b));
bankAccounts.remove(bankAccount.getAccountId(), bankAccount);
非法启动(类型)应为

非法开始表达;预期的

第二个错误

银行流程类

bank.getAccounts().forEach((i,b)->System.out.println(b));
bankAccounts.remove(bankAccount.getAccountId(), bankAccount);
没有找到合适的方法来删除

我知道这会发生吗?家用电脑上不会出现这样的错误

package Coursework1;
import java.util.*;

public class Bank {

  //Creates a new treemap in which Bank Accounts will be stored in.
  private TreeMap < Integer, BankAccount > bankAccounts = new TreeMap < Integer, BankAccount > ();

  //This method returns all bank accounts in the treemap.
  public TreeMap < Integer, BankAccount > getAccounts() {
    return bankAccounts;
  }

  //This method adds a bank account to the treemap.
  public void setAccounts(TreeMap < Integer, BankAccount > accounts) {
    this.bankAccounts = accounts;
  }

  //This method return a bank account using the account number.
  public BankAccount getAccount(Integer accountNumber) {
    return bankAccounts.get(accountNumber);
  }

  //This method removes a bank account from the treemap.
  public void removeAccounts(TreeMap < Integer, BankAccount > accounts) {
    this.bankAccounts = accounts;
  }
}
package课程作业1;
导入java.util.*;
公营银行{
//创建一个新的树映射,银行帐户将存储在其中。
私有树映射<整数,BankAccount>bankAccounts=新树映射<整数,BankAccount>();
//此方法返回树映射中的所有银行帐户。
公共树映射getAccounts(){
归还银行账户;
}
//此方法将银行帐户添加到树状图中。
公共无效设置帐户(树映射<整数,银行帐户>帐户){
这个。银行账户=账户;
}
//此方法使用帐号返回银行帐户。
公共银行帐户getAccount(整数帐户号){
返回银行账户。获取(账户编号);
}
//此方法从树映射中删除银行帐户。
公共作废删除帐户(树映射<整数,银行帐户>帐户){
这个。银行账户=账户;
}
}

据我所知,像您这样的forEach语句(lambda表达式)在Java 7及更早版本中不受支持。所以我猜学校的电脑没有安装Java 8。

你在家里使用sdk8,而你的学校有sdk7。这就是sdk7不支持sdk8表达式的原因。

您需要验证两台机器上的Java版本是否相同。检查两台IDE上的JDK版本是否相同。这是因为目标机器上有另一个不支持lambda表达式的Java版本。我怀疑学校计算机使用的是Java 7或更早版本。闭包只在Java8中添加…Ok。我理解。我在家使用JDK 8,但在学校使用JDK 7。我是否能够更改代码,使其在JDK 7上工作?您只需要更改“foreach”语句,因为Java 7不支持lambda表达式。其他一切都应该很好。当然,如果您没有包含其他特定于Java8的代码,我不明白我还可以使用什么表达式。我一直在通过Java8学习我所有的编码。如何更改foreach语句?下面是一个在Java 7和Java 8中使用foreach语句的示例:如果需要其他帮助,请告诉我。好的。我理解。然而,我试图实现我的编码到它,我得到非法的表达式错误。对于((i,b):bank.getAccounts){System.out.println(b);是否需要更改属性?