小编Gui*_*ido的帖子

谷歌的GSON是否使用构造函数?

在处理我们的项目时,我想知道一些事情.Google的GSON API是否使用您要反序列化的JSON中的构造函数?例如:

我有一个JSON字符串,我想转换为Employee对象.Employee对象有一个构造函数,它对参数应用一些检查(例如,它的ID> 0).我们使用下面的代码来反序列化JSON.但是在将JSON反序列化为Employee时,是否甚至调用了此构造函数?

链接到GSON:https://github.com/google/gson

编辑: 所以在尝试断点后,我发现构造函数没有被调用.有人知道一种方法来调用它吗?

/**
 * The GSON class to help you create and de-serialize the JSON objects.
 */
Gson gson = new Gson();

/**
 * Convert JSON to an object.
 * @param json The JSON to convert.
 * @param cls The class to convert to.
 * @return The converted JSON to object.
 */
public Object jsonToObject(String json, Class<?> cls) {
    return gson.fromJson(json, cls);
}
Run Code Online (Sandbox Code Playgroud)

java json gson

12
推荐指数
1
解决办法
9193
查看次数

Gradle Jacoco - 找不到方法jacocoTestReport()

我正在尝试在Gradle中生成Jacoco测试报告.当我尝试同步我的代码时,我将收到以下错误:

错误:(56,0)无法在类型为org.gradle.api.Project的项目':app'上找到参数[build_38ehqsoyd54r3n1gzrop303so $ _run_closure4 @ 10012308]的方法jacocoTestReport().

我的build.gradle文件包含以下项目:

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.7.6.201602180812"
    reportsDir = file("$buildDir/reports/jacoco")
}

jacocoTestReport {
    group = "Reporting"
    reports {
        xml.enabled true
        csv.enabled false
        html.destination "${buildDir}/reports/coverage"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我查看文档时,我没有看到任何我做错的事情.

Gradle版本:3.3

为什么我收到此错误,我该如何解决?

java android gradle jacoco

8
推荐指数
2
解决办法
7913
查看次数

FCM HTTP请求返回message_id,但Android上未收到任何消息

我正在尝试将我的服务器上的通知发送到我的Android设备.我正在使用Firebase Cloud Messaging发送通知.我可以通过Firebase控制台发送通知,然后在手机上收到消息.但是,我正在尝试通过我的服务器发送消息,但该消息尚未生效.

我执行下面的代码时得到以下响应:

"{\" MESSAGE_ID\":58934758934758936346437}"

当我们在Firebase文档中查看Firebase的文档时,我们可以看到接收message_id意味着该消息已成功发送.我虽然没有在手机上收到它.

我确实订阅了应用程序到正确的主题.

我正在运行以下代码:

private void test(String topic) {
    try {
        //Setup request
        URL url = new URL("https://fcm.googleapis.com/fcm/send");
        HttpURLConnection hc = (HttpURLConnection) url.openConnection();
        hc.setDoOutput(true);
        hc.setDoInput(true);

        //Set request params
        String message = "{\"to\": \"/topics/" + topic + "\"}";

        hc.addRequestProperty("Content-Type", "application/json");
        hc.addRequestProperty("Authorization", "key=SECRET");

        DataOutputStream dos = new DataOutputStream(hc.getOutputStream());
        dos.writeBytes(message);
        dos.close();

        //Get Response  
        InputStream is = hc.getInputStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));
        StringBuilder response = new StringBuilder(); // or StringBuffer if Java version …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-cloud-messaging

6
推荐指数
1
解决办法
6083
查看次数

JSF Bootsfaces组件没有显示

今天我正在申请一个学校项目.我们的Bootsfaces没有任何问题,但突然间我似乎无法显示组件(见图).我不知道是什么导致了这种意想不到的行为,因为它之前有效.没有任何内容更改为.xhtml页面.Chrome控制台和Payara控制台中的错误日志均提供0错误.

我正在使用Payara 5.181和Java EE 7.

编辑:

删除Payara服务器中的"生成"文件夹并重新启动PC似乎可以解决此问题,但过了一段时间(无法准确再现原因)页面再次变为空白.

页面的屏幕截图

.xhtml文件

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:b="http://bootsfaces.net/ui"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Kies je cartracker</title>
        <h:outputStylesheet name="default.css" library="css" />
    </h:head>
    <h:body>
        <h1>Kies je cartracker:</h1>
        <b:dataTable value="#{tourmanager.allCartrackers}" 
                     var="tracker">
            <b:dataTableColumn>
                <f:facet name="header">
                    <h:outputText value="Vehicle" />
                </f:facet>
                <h:outputText value="#{tracker.vehicle.serieNr}" />
            </b:dataTableColumn>
            <b:dataTableColumn>
                <f:facet name="header">
                    <h:outputText value="Kies cartracker" />
                </f:facet>
                <h:form>
                    <b:commandButton action="#{tourmanager.pickCartracker(tracker)}"
                                   value="Pick car" >
                    </b:commandButton>
                </h:form>
            </b:dataTableColumn>
        </b:dataTable>
    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

的pom.xml

<dependency>
    <groupId>net.bootsfaces</groupId>
    <artifactId>bootsfaces</artifactId>
    <version>1.2.0</version>
    <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

web.xml中

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet> …
Run Code Online (Sandbox Code Playgroud)

jsf bootsfaces

5
推荐指数
1
解决办法
403
查看次数