线程“ main”中的异常java.lang.IllegalArgumentException:无效的ObjectId [7887978] [英] Exception in thread "main" java.lang.IllegalArgumentException: invalid ObjectId [7887978]

查看:390
本文介绍了线程“ main”中的异常java.lang.IllegalArgumentException:无效的ObjectId [7887978]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用BSON API将String对象更改为ObjectId时,我确实面临挑战。我面临的错误:

I am really facing challenge in changing String object to ObjectId using BSON API. The error I am facing:

Exception in thread "main" java.lang.IllegalArgumentException: invalid ObjectId [7887978]
    at org.bson.types.ObjectId.<init>(ObjectId.java:130)
    at org.bson.types.ObjectId.<init>(ObjectId.java:124)
    at com.sample.common.Main.main(Main.java:8)

下面的简单代码参考:

import org.bson.types.ObjectId;

public class Main {
    public static void main(String[] args) {
        String number = "7887978";
        ObjectId id = new ObjectId(number);
        System.out.println(id);
    }
}

如何解决此错误。任何指针吗?

How we can solve this error. Any pointers ?

编辑:我使用的Maven依赖项:

Maven dependency that I used:

<dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>bson</artifactId>
            <version>2.3</version>
        </dependency>


推荐答案


来自 Bson API文档很明显, ObjectId(String
hexString)
从有效的 24字节
十六进制字符串
表示构造新实例。

From the Bson API doc it is clear that ObjectId(String hexString) Constructs a new instance from a valid 24-byte hexadecimal string representation.

这里的字符串必须是有效的 24字节 十六进制值。
7887978 的值无效。您可以修改以下代码:

Point here is the string has to be a valid 24-byte hexadecimal value. The value 7887978 is invalid. You could either modify the code as below:

String id = "666f6f2d6261722d71757578";
        if (ObjectId.isValid(id)) {
            ObjectId objectId = new ObjectId(id);
            System.out.println(objectId);
        } else {
            System.out.println("Invalid id");
        }

或使用内置静态API get() 创建一个新的对象ID。

or use the in build static API get() to create a new object id..

ObjectId objectId = ObjectId.get();

希望对您有所帮助!

这篇关于线程“ main”中的异常java.lang.IllegalArgumentException:无效的ObjectId [7887978]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆