无法将Date和String对象的值打印到glassfish服务器的控制台中

问题描述 投票:0回答:1

我有一个像这样的CDI托管bean,它会调用以打印约会对象的Date类型属性,我首先在Date对象上调用了.toString(),并且打印没有问题:

    private String[] selectedApps;
    private List<String> appStrings;
    private List<Appointment> appointments;    

    @PostConstruct
    public void init() {
        appointments = appointmentBean.getAppointments();
        appStrings = new ArrayList<>();
        appointments.forEach((n) -> {
            appStrings.add("START TIME: " + n.getStartTime().toString());
            System.out.print("APPOINTMENT TIME STRING: " + n.getStartTime().toString());
        });  
    }

    public String deleteApps() {
        if (selectedApps.length > 0) {
            appointmentBean.deleteAppointment(selectedApps);
            return "template.xhtml";
        } else {
            System.out.print("no apps selected");
            return "";
        }
    }

但是,在EJB中,我有另一种方法deleteAppointment(String[] appStrings),它试图打印从deleteApps()方法传递给它们的相同值,但它无法这样做:

    public void deleteAppointment(String[] appStrings) {
        for (int i = 0; i < appStrings.length; i++) {
            String startStr = (appStrings[i].substring(12)).trim();
            System.out.print(startStr);
        }
    }

我尝试从CDI bean打印到EJB的值的唯一区别是,我已经在字符串上调用了.substring().trim()方法,如果我不使用这些方法,并且只是尝试打印原始字符串,然后打印成功。不会抛出任何错误或异常,并且EJB方法deleteAppointments不会向控制台提供任何形式的输出。我也无法找到解决此问题的任何方法。

谢谢,山姆。

java ejb cdi
1个回答
0
投票

发布的appStrings[]的内容应该没有问题。检查以下代码的输出示例:

public class Main {
    public static void main(String[] args) {
        String appStrings0 = "START TIME: Tue Apr 07 17:38:00 BST 2020";
        String startStr = appStrings0.substring(12).trim();
        System.out.println(startStr);
    }
}

输出:

Tue Apr 07 17:38:00 BST 2020

我建议您使用如下所示的增强的for循环,以避免使用索引时出错。

public void deleteAppointment(String[] appStrings) {
    final int PREFIXLENGTH = "START TIME: ".length();
    for (String appString : appStrings) {
        String startStr = appString.substring(PREFIXLENGTH).trim();
        System.out.print(startStr);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.