GVKun编程网logo

当我创建对象的新实例作为键时,Java HashMap.get()返回null(当创建了类java.lang.thread或其子类)

9

在这篇文章中,我们将为您详细介绍当我创建对象的新实例作为键时,JavaHashMap.get的内容,并且讨论关于返回null的相关问题。此外,我们还会涉及一些关于dataSnapShot.getChi

在这篇文章中,我们将为您详细介绍当我创建对象的新实例作为键时,Java HashMap.get的内容,并且讨论关于返回null的相关问题。此外,我们还会涉及一些关于dataSnapShot.getChildren()返回null、getClassLoader()getResource()返回null、getClassLoader()。getResource()返回null、getResources()返回null的知识,以帮助您更全面地了解这个主题。

本文目录一览:

当我创建对象的新实例作为键时,Java HashMap.get()返回null(当创建了类java.lang.thread或其子类)

当我创建对象的新实例作为键时,Java HashMap.get()返回null(当创建了类java.lang.thread或其子类)

我正在制作电子表格应用程序,并且正在使用HashMap将数据存储在单元格中。作为关键,我使用的是Point类,该类仅具有行数和列数。我遇到的问题是,如果我将HashMap.get()与新的Point一起使用,它将返回一个空值。

    HashMap<Point, String> cache = new HashMap<Point, String>();    Point p1 = new Point(1,1);    Point p2 = new Point(2,2);    cache.put(p1, "Test: 1,1");    cache.put(p2, "Test: 2,2");    int maxRow = 2;    int maxCol = 2;    for (int i = 1; i <= maxRow; i++) {        for (int j = 1; j <= maxCol; j++) {            System.out.print(cache.get(new Point(i,j)));            if (j < maxCol)                 System.out.print("\t");            if (j == maxRow)                System.out.println("");        }    }

返回:

null     nullnull     null

我可能缺少明显的东西,但我自己找不到。另外,如果您碰巧知道是否有更好的数据结构来存储我希望听到的单元格中的数据。提前致谢!

答案1

小编典典

为了在上面详细说明我的评论,您的Point类应该实现哈希码,并且应如下所示:(存在许多实现,这只是一个可行的实现)假设实例的变量为xy

    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        Point point = (Point) o;        if (x != point.x) return false;        if (y != point.y) return false;        return true;    }    public int hashCode() {        int result = x;        result = 31 * result + y;        return result;    }

否则,如果您不重写这些方法,则ObjectJavadoc可以很好地说明您的问题:

As much as is reasonably practical, the hashCode method defined by     * class {@code Object} does return distinct integers for distinct     * objects. (This is typically implemented by converting the internal     * address of the object into an integer, but this implementation     * technique is not required by the     * Java<font size="-2"><sup>TM</sup></font> programming language.)     *     * @return  a hash code value for this object.     * @see     java.lang.Object#equals(java.lang.Object)     * @see     java.lang.System#identityHashCode     */    public native int hashCode();

因此,new Point(1,2)将不会被视为等于new Point(1,2),因此永远不会从中检索到Map

dataSnapShot.getChildren()返回null

dataSnapShot.getChildren()返回null

代码中的问题在于,在数据库userid中调用了用户ID属性,而在查询中您正在使用user_id,这是不正确的。查询中的字段名称必须与数据库中的名称字段匹配。要解决此问题,只需更改:

.orderByChild("user_id")

收件人:

.orderByChild("userid")

getClassLoader()getResource()返回null

getClassLoader()getResource()返回null

我有这个测试应用程序:

import java.applet.*;
import java.awt.*;
import java.net.URL;
public class Test extends Applet
{

    public void init()
    {
        URL some=Test.class.getClass().getClassLoader().getResource("/assets/pacman.png");
        System.out.println(some.toString());
        System.out.println(some.getFile());
        System.out.println(some.getPath());

    }
}

当我从Eclipse运行它时,出现错误:

java.lang.NullPointerException
    at Test.init(Test.java:9)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

类路径(来自.CLASSPATH文件)

<classpathentry kind="src" path="src"/>

在我的c:\ project \ src文件夹中,我只有Test.java文件和包含pacman.png的’assets’目录。

我在做什么错以及如何解决?

getClassLoader()。getResource()返回null

getClassLoader()。getResource()返回null

我有这个测试应用程序:

import java.applet.*;
import java.awt.*;
import java.net.URL;
public class Test extends Applet
{

    public void init()
    {
        URL some=Test.class.getClass().getClassLoader().getResource("/assets/pacman.png");
        System.out.println(some.toString());
        System.out.println(some.getFile());
        System.out.println(some.getPath());

    }
}

当我从Eclipse运行它时,出现错误:

java.lang.NullPointerException
    at Test.init(Test.java:9)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

类路径(来自.CLASSPATH文件)

<classpathentry kind="src" path="src"/>

在我的c:\ project \ src文件夹中,我只有Test.java文件和包含pacman.png的’assets’目录。

我在做什么错以及如何解决?

getResources()返回null

getResources()返回null

使用Eclipse IDE。该行:

getClass().getResource("/res/bitmaps/image.png");

返回null。我已经在res项目的根目录下创建了该文件夹。

感兴趣的代码是:

bImage = ImageIO.read(getClass().getResource("/res/bitmaps/image.png"));

并引发异常:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(ImageIO.java:1378)
    at com.example.game.resource.Resources._loadImage(Resources.java:31)
    at com.example.game.GameComponent.<init>(GameComponent.java:19)
    at com.example.game.GameFrame.<init>(GameFrame.java:8)
    at com.example.game.GameFrame.main(GameFrame.java:13)

有什么帮助吗?

关于当我创建对象的新实例作为键时,Java HashMap.get返回null的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于dataSnapShot.getChildren()返回null、getClassLoader()getResource()返回null、getClassLoader()。getResource()返回null、getResources()返回null的相关知识,请在本站寻找。

本文标签: