【问题标题】:can any one help me in this error in java?任何人都可以帮助我解决java中的这个错误吗?
【发布时间】:2018-06-03 14:47:07
【问题描述】:

我在java中创建哈希表,但是在其中添加元素时出现问题。

Hashtable <Integer,String> hashT=new Hashtable<Integer ,String >();
 hashT.put<sum2 , g>;

第二行的错误定义 sum2 是变量包含 integer 值和 g 变量包含 string 值。我不知道将元素放入哈希表的问题出在哪里。我想在每次值更改时将这个变量的值添加到哈希表中。

【问题讨论】:

  • hashT.put&lt;sum2 , g&gt;; 是错误的。试试这个:hashT.put(an_Integer, a_String);
  • 您需要提供错误的堆栈跟踪
  • ,请edit你的问题标题是有意义的。标题应该以对在搜索结果列表中看到它的未来读者有用的方式描述问题或提出问题。 谁能帮帮我? 绝对没用。您还提到了this error,但根本没有在代码中描述error。你有什么错误?您收到错误消息吗?如果是这样,那是什么信息?或者你的意思是不工作而不是错误?见How to Ask 和minimal reproducible example。

标签: java


【解决方案1】:

要改变一个对象,你必须调用它的属性。对象属性要么是字段,要么是方法。在您的情况下,put 是 hashT 对象的一种方法。方法调用是通过编写对象名称,然后是点运算符,然后是方法名称,最后是括号括起来的参数来完成的:

objectName.methodName(argument1, argument2, ...);

问题出在这里:

hashT.put<sum2 , g>;

put 是一种方法,要调用它,您必须用括号括住参数(sum2 和 g):

hashT.put(sum2, g);

【讨论】:

    【解决方案2】:

    您需要关注 cmets 并编辑您的标题,使其成为一个有意义的标题,帮助其他人了解您的问题。

    此外,当您遇到错误时,请复制控制台中显示的大红色文本(颜色取决于您使用的编辑器),也称为错误的“堆栈跟踪”,并将其粘贴到您的问题中。这将帮助我们查明发生了什么,并且错误标题本身可能会告诉我们究竟出了什么问题。

    但是,如果没有任何上下文说明错误是什么以及这两行代码之前或之后的内容,很难确定您之前是否将 sum2 或 g 定义为存储值的变量。我假设您至少没有分配其中一个,可能是 g 作为变量。

    出于实验目的,请尝试将这两行代码替换为:

    Hashtable <Integer,String> hashT=new Hashtable<Integer ,String >();
     hashT.put<0 , "g">;
    

    这就是将零 (0) 作为显式整数和 g 作为显式字符串放入哈希表中。如果您需要将变量放入其中,则需要事先定义它们,如下所示:

    int sum2 = 3 + 4;
    String g = "Some String";
    
    Hashtable <Integer,String> hashT=new Hashtable<Integer ,String >();
    hashT.put<sum2 , g>;
    

    现在整数值7被存储为哈希值,字符串Some String作为映射值。

    【讨论】:

    • 我做到了,因为问题是一个简单的错字,你只是在这个非答案中长期存在。
    • 这个答案不正确。当然,提问者会在使用变量之前定义和初始化变量。他/她正在创建一个 Hashtable 类,不会忘记初始化变量。您提供的代码也无法正常工作。 hashT.put&lt;sum2, g&gt;; 不是有效的代码行。
    • @Roclemir 和接受的答案可能是错误的,投反对票的答案并不傲慢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    相关资源
    最近更新 更多