java - 吸气剂工作不正常
问题描述
我正在处理一个报告文件以调用多种方法来处理外部报告文件。下面是我的 report.java 文件,getter 元素似乎不起作用。这些元素是 generateReport 和 isServerActive。这就是我想要弄清楚的,因为我的所有其他方法在被调用时都可以正常工作,但这两个似乎仍然被挂断了。
class Report {
//Variables to be used within my methods/functions below
private static String serverName;
private static String userName;
private static String password;
private String reportName;
private int numParameters;
private int reportParameter;
private String reportParameterString;
private static String outputType;
private static String systemName;
private static String genReport;
private static boolean active;
// Constructor
Report(String name){
reportName = name;
}
//setServerName method, assigned variable serverName the value passed into "name"
public static void setServerName(String name){
serverName = name;
}
//setUserName method, assigned variable userName the value passed into "user"
public static void setUserName(String user){
userName = user;
}
//setPassword method, assigned variable password the value passed into "pw"
public static void setPassword(String pw){
password = pw;
}
//setNumParameters method, assigned variable numParameters the value
passed into int "numParm"
public void setNumParameters (int numParm){
numParameters = numParm;
}
//setParameter method, assigned variable reportParameter the value
passed into int "reportParam"
//Assigned variable reportParameterString the value passed into
"param"
public void setParameter (int reportParam, String param){
reportParameter = reportParam;
reportParameterString = param;
}
//setOutputType method, assigned variable outputType the value passed
into "output"
public void setOutputType (String output){
outputType = output;
}
//setReportSystemName method, assigned variable systemName the value
passed into "reportSystemName"
public void setReportSystemName (String reportSystemName){
systemName = reportSystemName;
}
public void generateReport(String reportGen){
genReport = reportGen;
}
public void isServerActive(boolean isActive){
active = isActive;
}
}
这是我在其中调用所有上述方法的文件
public class ReportClassPrinter {
public static void main(String[] args) {
//Set the server name
Report.setServerName("\\\\fancyServer");
Report.setUserName("NHAUser");
Report.setPassword("NHAPassword");
//Create the two reports
Report report1 = new Report("Report #1");
Report report2 = new Report("Report #2");
//Set the numbe of parameters for each report
report1.setNumParameters(2);
report2.setNumParameters(4);
//Add the needed parameters, Report should make sure I am not trying to break it
report1.setParameter(0, "01/01/1970");
report1.setParameter(1, "01/01/2018");
report1.setParameter(2, "pjdt");
report2.setParameter(0, "08/01/2017");
report2.setParameter(1, "08/01/2018");
report2.setParameter(2, "notpjdt");
report2.setParameter(3, "THIS IS A PARAMETER");
report2.setParameter(4, "THIS WON'T BE ADDED");
//Set the output type
report1.setOutputType("pdf");
report2.setOutputType("xls");
//Set the report system name:
report1.setReportSystemName("reportNumberOne.rdl");
report2.setReportSystemName("reportNumberTwo.rdl");
//Display the Report information
System.out.println(report1.generateReport());
System.out.println("Server up is: " + Report.isServerActive());
System.out.println(report2.generateReport());
System.out.println("Server up is: " + Report.isServerActive());
//Change the server - notice how chaning this once, affects ALL reports
System.out.println("\nUpdating Server information\n");
Report.setServerName("\\\\SercureServerName");
Report.setUserName("SecureNHAUser");
//Again display the Report information
System.out.println(report1.generateReport());
System.out.println("Server up is: " + Report.isServerActive());
System.out.println(report2.generateReport());
System.out.println("Server up is: " + Report.isServerActive());
}
}
解决方案
你需要
- 在你的吸气剂的最后一行返回语句
- 改变函数的返回类型
- 从函数签名中删除参数,因为您不使用参数调用函数
- 将静态添加到返回类型
在 Main 函数上按预期工作。您在吸气剂中所做的只是为变量分配了值。
class Report {
[...]
public static String generateReport(){
return genReport;
}
public static boolean isServerActive(){
return active;
}
}
推荐阅读
- python-3.x - Mac OS 上的 Pip 安装出错:命令“/usr/bin/clang”失败,退出代码为 1
- linux - 将 find & exec 的输出重定向到日志文件
- java - 将内部带有 var 的 for each 循环转换为 Java Stream?
- c# - C#按钮单击,显示图像然后退出
- vue.js - 使用日期选择器 Vuetify 动态表单输入
- android - Codetrix 电容器 google 登录需要登录时的选项
- typescript - 如何为现有属性的 TypeScript 接口添加别名?
- sapui5 - 当只剩下一个选择项时如何禁用 sap.m.Select
- docker - 难以附加状态容器?
- swift - 如果没有上下文类型,则无法解析对成员“下标”的引用