线程 "main" java.lang.IllegalArgumentException 中的异常:无效的 ObjectId [7887978]
Exception in thread "main" java.lang.IllegalArgumentException: invalid ObjectId [7887978]
我真的面临使用 BSON API 将 String 对象更改为 ObjectId 的挑战。我面临的错误:
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);
}
}
我们如何解决这个错误。任何指示?
编辑:我使用的 Maven 依赖项:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>2.3</version>
</dependency>
文档说:
IllegalArgumentException - if the string is not a valid id
所以可能 "7887978"
不是有效的 ID
From the Bson API doc it is clear that ObjectId(String
hexString)
Constructs a new instance from a valid 24-byte
hexadecimal string
representation.
这里的要点是 string
必须是有效的 24-byte
hexadecimal
值。
值 7887978
无效。您可以修改代码如下:
String id = "666f6f2d6261722d71757578";
if (ObjectId.isValid(id)) {
ObjectId objectId = new ObjectId(id);
System.out.println(objectId);
} else {
System.out.println("Invalid id");
}
或者使用 in build static API get()
来创建一个新的对象 id..
ObjectId objectId = ObjectId.get();
希望对您有所帮助!
我真的面临使用 BSON API 将 String 对象更改为 ObjectId 的挑战。我面临的错误:
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);
}
}
我们如何解决这个错误。任何指示?
编辑:我使用的 Maven 依赖项:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>2.3</version>
</dependency>
文档说:
IllegalArgumentException - if the string is not a valid id
所以可能 "7887978"
不是有效的 ID
From the Bson API doc it is clear that
ObjectId(String hexString)
Constructs a new instance from a valid24-byte hexadecimal string
representation.
这里的要点是 string
必须是有效的 24-byte
hexadecimal
值。
值 7887978
无效。您可以修改代码如下:
String id = "666f6f2d6261722d71757578";
if (ObjectId.isValid(id)) {
ObjectId objectId = new ObjectId(id);
System.out.println(objectId);
} else {
System.out.println("Invalid id");
}
或者使用 in build static API get()
来创建一个新的对象 id..
ObjectId objectId = ObjectId.get();
希望对您有所帮助!