比方说我下面有这个课:
public class Player{
}
我可以这样创建一个新实例:
Player someone = new Player();
现在我有一个.txt文件,每行都可以作为潜在播放器:
乔治
乔尔
凯特
...
我可以读取这些行并将其分配给这样的String:
字符串名称=“乔治”;
我该如何命名为“乔治”?例如,我想在下面创建“乔治”。
Player name.toClassName = new Player();
我发现的一个解决方案是:
if(name == "george"){
Player george = new Player();
}
if(name == "joel"){
Player joel = new Player();
}
if(name == "kate"){
Player kate = new Player();
} ...
但是以上内容看起来很愚蠢。 (通过这样的方式,我已经在 Player 类中有了一个私有名称; ,我在创建实例后将这些字符串分配给它们,我可以获取并设置它们,等等。 。,但这不是我想在这里处理的。我只是想知道您是否可以以此方式创建新实例。
答案 0 :(得分:1)
您的变量名与其所代表的实例没有任何关系。您的编程应该足够抽象,这样,如果您更改了txt文件,则无需更改任何代码。
首先,您的Player类应该在构造函数中接受一个名称(有很多方法可以做到这一点,这只是最简单的方法)。
public class Player {
private String name;
public Player(String inName) {
name = inName
}
}
然后,在创建播放器时,请勿将名称用作变量的名称。
Player player = new Player(name);
无论您如何阅读.txt,您都可以为每一行创建一个Player或类似的内容。
答案 1 :(得分:1)
我不喜欢像问题中提到的那样根据播放器名称创建变量名称的想法。如果您需要知道播放器的名称,则只需访问名称变量。但是此代码将允许您在使用构造函数创建对象时设置“播放器名称”字段。
public class Player{
Private string name;
Player(String name)
{
this.name - name;
}
}
Player player= new Player("joel");