将String用户输入作为参数传递给具有类类型参数的方法

时间:2016-05-18 19:29:05

标签: java hashmap

我正在将用户的输入作为String,我希望将该String传递给一个采用class类型参数的方法。 这可能吗? 我尝试过使用Hashmap。那会有用吗?

以下是相关代码:

Node是类类型,startNodegoalNode是用户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。 为什么会这样?任何形式的线索都非常感激

1 个答案:

答案 0 :(得分:0)

if (map.contains("startNode") && map.contains("goalNode")){
 s.searchmap(map.get("startNode"), map.get("goalNode"));
}

get()上的hashmap方法会return指定value所映射的keynull map null 1}}不包含密钥的映射。如果您获得contains,则没有为特定键映射值。使用mapif (pos == inputString.length()) { return 0; } 上并检查特定键是否有值,如果有,则返回true。