当前位置: 首页 > 知识库问答 >
问题:

这是在没有get/set ters的情况下改造POJO的正确方法吗?

贺运良
2023-03-14

我的代码工作正常。我很想知道这个方法是否适合这个特定的用例,因为我找不到不使用GSON或其他JSON解析库但只使用POJO来保存数据的Retrofit示例。

(注意,我一直在尝试格式化我的代码一段时间!很抱歉)

对于本例,我从TMDB的APIhtml" target="_blank">请求数据:../3/movie/{id}?API_KEY=x

以JSON返回的数据(减少。请关注“评论”对象)

{
"vote_count":2034,
"reviews":{
    "page":1,
    "results":[
        {
            "id":"55660928c3a3687ad7001db1",
            "author":"Phileas Fogg",
            "content":"Fabulous action movie. Lots of interesting characters. They don't make many movies like this. The whole movie from start to finish was entertaining I'm looking forward to seeing it again. I definitely recommend seeing it.",
            "url":"http://j.mp/1HLTNzT"
        },
        {
            "id":"55732a53925141456e000639",
            "author":"Andres Gomez",
            "content":"Good action movie with a decent script for the genre. The photography is really good too but, in the end, it is quite repeating itself from beginning to end and the stormy OST is exhausting.",
            "url":"http://j.mp/1dUnvpG"
        }
    ],
    "total_pages":1,
    "total_results":2
},
"trailers":{
    "quicktime":[

    ],
    "youtube":[
        {
            "name":"Trailers From Hell",
            "size":"HD",
            "source":"FRDdRto_3SA",
            "type":"Featurette"
        },
        {
            "name":"Trailer 2",
            "size":"HD",
            "source":"jnsgdqppAYA",
            "type":"Trailer"
        },
        {
            "name":"Official Trailer #1",
            "size":"HD",
            "source":"YWNWi-ZWL3c",
            "type":"Trailer"
        }
    ]
}

> < li>

创建了改造界面。我希望我能在这里展示它,但格式要疯了。

这是奇怪的部分。我创建了一个POJO,如下所示,它运行良好。

公共类tmdbmoviedetailsrrofitobj{

运行时在电影/id终结点公共字符串运行时中可用;

公共字符串标语;

公众评论评论;

公共课程评论{

public Reviews() { reviews = new Reviews(); }

// To know how many reviews we have got!
public String total_results;

public List<ReviewResults> results;

public class ReviewResults{

    public ReviewResults() {
        results = new ArrayList<>();
    }

    public String id;
    public String author;
    public String content;
    public String url;
}

} }

没有创建getter和setter方法,因为我有另一个TMDBMovie对象,它包含大量信息并具有自己的getter和setter方法。

你认为这两点没问题吗:

>

  • 这个POJO有3个级别的公共嵌套类,改造后可以很好地处理这些类。

    我确实有一个TMDBMovie对象,它有自己的getter和setter方法,我通过这些方法进行检查、验证和次要的数据操作。如果公共变量运行正常,这个POJO甚至需要getter和setter方法吗?

  • 共有2个答案

    尹兴生
    2023-03-14
    1. 不,它们三个级别的嵌套类定义令人困惑,可能会增加维护问题。此外,尝试初始化外部类字段的嵌套类构造函数有点粗略。只需实现每个类一个自己的 -

    TMDBMovieDetailsRetrofitObj.java

    public class TMDBMovieDetailsRetrofitObj {
        // Runtime available in movie/id endpoint
        public String runtime;
        public String tagline;
        public Reviews reviews;
    }
    

    Review.java

    public class Reviews {
        // To know how many reviews we have got!
        public String total_results;
        public List<ReviewResults> results;
    }
    

    ReviewResults.java

    public class ReviewResults {
        public String id;
        public String author;
        public String content;
        public String url;
    }
    
    董意蕴
    2023-03-14

    命名类变量以便将JSON转换为Java对象是一个好主意。但是,这些类不需要嵌套。您可以定义列表

     类似资料:
    • 问题内容: 我正在学习d3。有某些方法可以在d3 js 中加载数据。但是他们似乎都进行了HTTP GET。在我的场景中,我已经在字符串中包含了json数据。如何使用此字符串代替发出另一个http请求?我试图为此寻找文档,但没有找到。 这有效: 现在,如果我有: 如何在d3中使用已计算的“ myjson”并避免对服务器的异步调用?谢谢。 问题答案: 只需将通话替换为 IE浏览器: 更新09/2013

    • 我需要从起始偏移量到结束偏移量读取一组记录。我使用专用Kafka消费品。我至少同意一次语义(在这种情况下,如果给定的应用程序实例宕机,新的应用程序实例从该起始偏移量重新读取记录)。 那么,我可以使用这样的代码吗? 因此: 我没有 是正确的代码吗?或者它有一些隐藏的问题?

    • 问题内容: 如果DBMS没有ANY()聚合函数,我通常使用MAX()或MIN()。 在MySQL和MS-SQL中有便宜些的东西吗? 问题答案: MySQL 不需要 ANY()聚合。 如果我做一个 微软的T-SQL会抱怨,但是 MySQL将只是默默地执行 当然哪一个比 MySQL支持 ,但 不起作用,因为它 是类似于 和的运算符 。 参见: http //dev.mysql.com/doc/refm

    • 我有一个带有私有方法的类,该方法调用一些外部类并执行它,如果不使用powermock,我如何防止这种情况发生?(该项目使用Junit5,目前还不支持powermock)。 我考虑过将这些函数移到外面,但我觉得有时方法确实属于特定的类,因为它们是它的一部分,将它们移出对我来说没有意义,下面只是一个例子来说明。 我已经知道大多数人会说不要测试私有方法,但a.我不完全同意,b.我不想在这里测试这个方法,

    • 这是一个使用合并排序的程序,从1到1000对1000个数字的列表进行排序。它显示原始列表,然后调用递归方法对其进行排序,然后显示。 代码中我不明白的是这两行: 合并排序(数字,低,中);//在方法中,它会说“这里” 合并排序(数字,中间1,高); 我是java的初学者,这与我所学的一切背道而驰,因为我无法理解如何在方法中调用方法。除非它是一个我怀疑的对象。有人能解释一下这两行代码的作用吗?

    • 这里提出的问题是:https://vaadin.com/forum/thread/18095407/how-to-create-a-grid-without-binder 然而,瓦丁的论坛关闭了,所以我想在这里继续。 关于Vaadin 14,任何关于实现动态变化列数网格的最佳方法的建议。使用列索引(1,2,3...)对我来说不是一个好选择。假设我有一个简单的Json文件(只有1个级别:key-va