我正在编写一个快速方法,使用 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/