java - 是否可以将 Object 对象作为方法参数传递

标签 java json generics gson

我正在编写一个快速方法,使用 Google Gson 将对象转换为 JSON。这很简单,但我想集中我的 JSON 构建过程,以防我想要进行进一步的更改:

public static String buildJSONObject(Object obj) {
    Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
    return gson.toJson(obj);
}

现在我对此有两个问题(有效),

-使用对象作为方法参数可以吗,或者有更好的方法使用泛型吗?

-如果不断地将对象转换为传递给方法的任何类型的对象,是否会产生性能开销?

最佳答案

Is using Object okay as a method argument, or is there a better way using Generics?

泛型提供类型安全并更好地显示意图,从而使代码更简洁。话虽这么说,只有当您知道要传递给方法的对象类型并且已经建立了某种对象层次结构并从中扩展所有 JSON 对象时,它们才真正提供这些好处。如果您确实希望能够将任何对象转换为 JSON,Object obj 就是您的最佳选择。

Is there performance overhead if constantly casting Objects to whatever kind of object is passed to the method?

类型转换不存在性能问题。您应该担心的是类型安全和无效强制转换导致的 RuntimeExceptions。如果您确定进入方法的对象类型,请小心进行强制转换。您始终可以先通过 instanceof 检查来进行安全转换,这样问题就不会那么严重了。

关于java - 是否可以将 Object 对象作为方法参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718737/

相关文章:

java - 以下代码的输出

java - Android hashmap 以错误的格式转换为 JSON

java - 反序列化通用(但可序列化)类型

java - 项目将无法识别任何 Maven 依赖项

java - 适用于 Java 或 .NET 的良好电子商务平台

json - 需要从 Grails 3.1.5 应用程序同时提供 GSP 和 JSON

javascript - 从 json 中获取数据,例如使用 javascript 和 jquery 加载更多

c++ - 如果基类没有成员,派生 C++ 类的大小是多少?

c# - 泛型类型的泛型类型约束

java - Maven:测试依赖项