我正在将用户的输入作为String
,我希望将该String传递给一个采用class
类型参数的方法。
这可能吗?
我尝试过使用Hashmap。那会有用吗?
以下是相关代码:
Node
是类类型,startNode
和goalNode
是用户String
输入
public class search {
Scanner input = new Scanner(System.in);
filename = input.next();
File file = new File(filename);
System.out.print("Enter the start node: ");
startNode = input.next();
System.out.print("Enter the goal node: ");
goalNode = input.next();
search s = new search();
Map<String,Node> map = new HashMap<String,Node>();
Node start = new Node();
Node goal = new Node();
map.put("startNode",start);
map.put("goalNode",goal);
System.out.println(map.get("startNode")); //IT IS PRINTING NULL HERE
s.searchmap(map.get("startNode"), map.get("goalNode")); //CALLING THE METHOD
以下是searchmap方法
public void searchmap(Node Start, Node Goal) {
...... }
例如,假设用户输入's'代表startnode而'g'代表goalnode(字符串),我需要将其作为Node
类型传递给方法searchmap
当我这样做时,它返回null。
为什么会这样?任何形式的线索都非常感激
答案 0 :(得分:0)
if (map.contains("startNode") && map.contains("goalNode")){
s.searchmap(map.get("startNode"), map.get("goalNode"));
}
get()
上的hashmap
方法会return
指定value
所映射的key
,null
map
null
1}}不包含密钥的映射。如果您获得contains
,则没有为特定键映射值。使用map
在if (pos == inputString.length()) {
return 0;
}
上并检查特定键是否有值,如果有,则返回true。