这是一个有效的代码示例。感谢@markspace为我提供它。 这里的代码生成一个hashmap并在其中插入值。
public class RpgPersonExample
{
public static void main( String[] args )
{
Map<String, RpgPerson> team = new HashMap<>();
team.put( "Sgt. Mayhem", new RpgPerson( 100, 10, 0 ) );
team.put( "Wizard", new RpgPerson( 100, 1, 10 ) );
team.put( "Dragon", new RpgPerson( 1000, 100, 100 ) );
System.out.println( team.get( "Dragon" ) );
System.out.println( team.get( "Wizard" ) );
}
}
class RpgPerson
{
private int hits;
private int strength;
private int magic;
public RpgPerson( int hits, int strength, int magic )
{
this.hits = hits;
this.strength = strength;
this.magic = magic;
}
@Override
public String toString()
{
return "RpgPerson{" + "hits=" + hits + ", strength=" +
strength + ", magic=" + magic + '}';
}
}
我想要做的是从另一个班级使用它。如果我使用
System.out.println( team.get( "Dragon" ) );
从主函数它工作正常。但是我该怎么办?我想从另一个班级做到这一点?
Public class Test {
public static void example(){
System.out.println( RpgPerson.team.get( "Dragon" ) );
}
}
类测试显然不起作用,但如果我希望它能够工作,我该怎么办?
答案 0 :(得分:1)
您可以做的最简单的事情是将示例方法传递给引用Map
的参数:
public static void example(Map<String, RpgPerson> team) {
System.out.println(team.get("Dragon"));
}
答案 1 :(得分:0)
将名为team
的Map声明为静态类变量:
public class RpgPersonExample
{
public static Map<String, RpgPerson> team = new HashMap<>();
public static void main( String[] args )
{
// ...
}
}
像这样访问它:
System.out.println( RpgPersonExample.team.get( "Dragon" ) );
答案 2 :(得分:0)
你需要一个新班级。你可以看起来像这样:
public class Team {
private Map<String, RpgPerson> team;
public Team() {
team = new HashMap<String, RpgPerson>();
}
public void addPersonToTeam(String name, RpgPerson person) {
team.put(name, person);
}
public Map<String, RpgPerson> getTeam() {
return team;
}
}
然后你可以建立一个新的团队,并在你需要的任何课程中使用它。
答案 3 :(得分:0)
如果我的问题正确,您希望在程序的其他位置使用哈希地图。这很简单,可以通过将hashmap声明为public并使其成为类变量来实现。现在,由于它的public和.a类变量,它可以在类的任何函数中使用,或者在该类的引用的帮助下使用。
但是如果你想在同一个类的void main中使用它,你必须将它声明为PUBLIC STATIC,因为静态函数只能访问静态变量。 如果你声明它是静态的,你可以在外面的任何地方使用它,只需说CLASSNAME.team.get(“whatever”); 希望这有帮助!!