package Learning;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class MatchScoreS {
public static void main(String args[])
throws IOException {
Scanner diskScanner =
new Scanner(new File("MatchScoress.txt")); //the file has to be in the package, in this case the Learning folder.
for (int games = 1; games <= 5; games++) {
checkoutscores(diskScanner);
}
diskScanner.close();
}
static void checkoutscores(Scanner aScanner) {
MatchScore aMatch = new MatchScore();
aMatch.setMatchNumber(aScanner.nextLine());
aMatch.setKillsInMatch(aScanner.nextLine());
aMatch.setDeathsInMatch(aScanner.nextLine());
aScanner.nextLine();
}
}
这是我的构造函数方法。我已创建它,以便设置匹配号,终止号码和死亡号码。这些只是我创造的变量,然后不是来自任何游戏或任何东西。
ConcurrentMap<String, Integer> map = /* something */;
// entrySet just returns a view of the entries, so copy it into a new List
List<Map.Entry<String, Integer>> entries = new ArrayList<>(yourMap.entrySet());
// sort entries by their int values
Collections.sort(entries, (entry1, entry2) -> Integer.compare(entry1.getValue(), entry2.getValue()));
// copy just the keys into a new List
List<String> result = new LinkedList<>();
for (Map.Entry<String, Integer> entry : entries) {
result.add(entry.getKey());
}
这将是访问者方法。我创建了一个具有匹配号,终止号码和死亡号码的文件。我得到错误“线程中的异常”主“java.util.NoSuchElementException:找不到行 在java.util.Scanner.nextLine(未知来源) 在Learning.MatchScoreS.checkoutscores(MatchScoreS.java:22) 在Learning.MatchScoreS.main(MatchScoreS.java:15)“。 当我删除“aScanner.nextLine();程序不会给我一个错误,但它不会给我带来匹配号等等。
我刚刚开始学习java,我正在使用Accessor和构造函数方法的章节。任何帮助都是极好的!!感谢。
答案 0 :(得分:0)
如果你有一个变量foo
,它的访问者通常采用以下形式:
void setFoo(<type> value) {
foo = value
}
<type> getFoo() {
return foo;
}
因此,在您的代码中,setMatchNumber()
,getName()
,setKillsInMatch()
,getKillsInMatch()
等是访问者(getName()
应该被称为getMatchNumber()
})。
构造函数是一个声明的方法,其名称与包含它的类相同,声明中没有返回类型。例如,对于您可能拥有的MatchScore
课程
public MatchScore(String num, String kills, String death) {
MatchNumber = num;
KillsInMatch = kills;
DeathsInMatch = death;
}
(顺便说一下,通常字段和局部变量都是非大写的,所以它们应该是matchNumber
,killsInMatch
和deathsInMatch
。
现在,对于您的特定异常:看起来您的Matchscoress.txt
文件只有3行,因此前三个nextLine()
调用成功,第四个调用异常。