将项目导入另一台计算机时出现编码错误
Posted
技术标签:
【中文标题】将项目导入另一台计算机时出现编码错误【英文标题】:Coding error when importing project to another computer 【发布时间】:2015-03-02 23:54:25 【问题描述】:我有一个我创建的项目,在家里做时可以完美运行,没有任何错误。但是,当我将项目导入学校的计算机时,我从两个不同的类中得到两个代码错误。
第一个错误
主类
bank.getAccounts().forEach((i,b)->System.out.println(b));
类型 ) 预期的非法开始;
表达式开头非法;预期;
第二个错误
BankProcess 类
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;
【问题讨论】:
您需要验证两台机器上的Java版本是否相同。 检查JDK是否在两个IDE上的版本相同。 那是因为目标机器有另一个不支持 lambda 表达式的 java 版本。 我怀疑学校计算机使用的是 Java 7 或更早版本。闭包仅在 Java 8 中添加... 【参考方案1】:据我所知,Java 7 及更早版本不支持像您的 forEach 语句(lambda 表达式)。所以我的猜测是学校计算机没有安装 Java 8。
【讨论】:
好的。我明白。我在家里使用 JDK 8,但在学校使用 JDK 7。我可以更改代码以使其在 JDK 7 上运行吗?它需要彻底改造吗? 您只需要更改“foreach”语句,因为 Java 7 不支持 lambda 表达式。其他一切都应该可以正常工作。如果您没有包含其他 Java 8 特定代码,当然... 我不明白我还能用什么其他表达方式。我一直在通过 Java 8 学习所有编码。如何更改 foreach 语句? 这是在 Java 7 和 Java 8 中使用 foreach 语句的示例:***.com/questions/16635398/… 如果您需要其他帮助,请告诉我。 好的。我明白。但是,我尝试对其进行编码,但遇到了非法表达式错误。 for((i,b) : bank.getAccounts) System.out.println(b);我需要更改属性吗?【参考方案2】:您在家里使用 sdk8,而您的学校有 sdk7。这就是为什么 sdk7 不支持 sdk8 表达式的原因。
【讨论】:
以上是关于将项目导入另一台计算机时出现编码错误的主要内容,如果未能解决你的问题,请参考以下文章
将 libgdx 项目导入 Eclipse 时出现 Gradle 错误
将flutter项目导入MacOS并运行时出现Info.plist错误