我有一个Android应用程序。
我已经通过创建一个从应用程序中捕获各种参数 /variable值的方法来捕获事件。我写的代码片段包含EventClass和EventModelClass{公共类UserAccessCase实现ILog{
private Logger mLogger = null;
UserAccessEventModel obj;
public void StoreUserAccessEvent(String Timestamp, String UserId, int FailedAttempts, int SuccessfulAttempts, int Attempts,
int NoOfRevocations, int PassCodeChange) {
obj = new UserAccessEventModel(Timestamp, UserId, SuccessfulAttempts, FailedAttempts, Attempts, NoOfRevocations, PassCodeChange);
toJsonLog();
}
public String toJsonLog() {
JSONObject event = new JSONObject();
try {
event.put("Timestamp", obj.getTimestamp());
event.put("UserId", obj.userid);
event.put("SuccessfulAttempts", obj.successfulattempts);
event.put("FailedAttempts", obj.failedattempts);
event.put("Attempts", obj.attempts);
event.put("NoOfRevocations", obj.noofrevocations);
event.put("PassCodeChange", obj.passcodechange);
//to store the log data that is stored in json object
Log.d("UserAccessEvent", event.toString());
return event.toString();
} catch (Exception e) {
Log.d("UserAccessEvent", "Exception");
throw new RuntimeException(e);
}
}
}
公共类UserAccessEventModel{
private String timestamp;
public String userid;
public int successfulattempts;
public int failedattempts;
public int attempts;
public int noofrevocations;
public int passcodechange;
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
public void setUserid(String userid) {
this.userid = userid;
}
public void setSuccessfulattempts(int successfulattempts) { this.successfulattempts = successfulattempts; }
public void setFailedattempts(int failedattempts) {
this.failedattempts = failedattempts;
}
public void setAttempts(int attempts) {
this.attempts = attempts;
}
public void setNoofrevocations(int noofrevocations) {
this.noofrevocations = noofrevocations;
}
public void setPasscodechange(int passcodechange) {
this.passcodechange = passcodechange;
}
public String getTimestamp(){
timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
return timestamp;
}
public UserAccessEventModel() {
}
public UserAccessEventModel(String timestamp, String userid, int successfulattempts, int failedattempts, int attempts, int noofrevocations, int passcodechange) {
this.timestamp = timestamp;
this.userid = userid;
this.successfulattempts = successfulattempts;
this.failedattempts = failedattempts;
this.attempts = attempts;
this.noofrevocations = noofrevocations;
this.passcodechange = passcodechange;
}
}
我想进行更改,这样我就可以只使用JSON来记录数据,而不用使用模型类。我希望它更通用。。。。。
现在,我需要通过更改JSON方法键/值对来记录方法中的数据。
有什么方法可以做到这一点吗??
请给出任何建议。
如果您使用的是Java8,则可以执行以下操作。
public String toJsonLog(Class YourModelClass) {
JSONObject event = new JSONObject();
Class yourClass = YourModelClass.class;
Field[] fields = yourClass.getFields();
YourModelClass obj = new YourModelClass();
for(Field f: fields){
f.getName();
}
try {
for(int i=0; i<fields.length(); i++){
String geterStr = obj + ".get" + fields[i] + "()";
event.put(fields[i], geterStr);
}
Log.d("YourModelClass", event.toString());
return event.toString();
} catch (Exception e) {
Log.d("YourModelClass", "Exception");
throw new RuntimeException(e);
}
}
但在这个过程中,必须使getter方法与字段名相同。例如,假设你的字段名是userId
,那么你必须将getter方法设置为getuserId()
,而不是getuserId()
。必须忽略java命名约定才能使其通用。
注意:我没有尝试过这个,但我参考了这个问题:如何获取变量名?-java并把我自己的逻辑,但我想它应该可以工作。
我有一个在事件上触发的可运行文件。我试图从事件中获取列表并清除它,但将列表放在事件期间创建的实体的元数据存储中。到目前为止,我已经尝试过: 注意:这个类实现了一个事件监听器。 和(仅最后一节): 在顶部,它不会清除事件。getDrops()并将把列表放入实体的元数据中,复制事件。getDrops()。在下面的示例中,它将清除事件。getDrops(),但不会将列表放入实体的元数据中,从而擦除事件。
问题内容: 我正在使用Chrome扩展程序,我想检测用户何时键入URL。我知道: 但是,只要URL更改(例如,页面自动重新加载或用户单击链接等),它就会被调用。 我希望能够仅通过用户输入URL来确定URL是否已更改。 问题答案: 您可以使用(MDN)事件获取此信息。事件侦听器接收属性(MDN),该属性根据导航的原因将是不同的值(MDN)。哪个值,您触发将取决于 正是 您所渴望的东西。对于你的描述,
问题内容: 该代码不起作用 问题答案: JavaScript区分大小写。 因此,如果要更改字体大小,则必须执行以下操作:
我需要有关如何更改通过DocuSign向收件人发送电子邮件时显示的名称的帮助。我使用的是REST API,我复制了DocuSign的一个示例。我可以更改电子邮件主题,但我不知道top如何更改电子邮件正文中的[名称]。下面是一个如何更改电子邮件主题的示例。我正在使用c#Web开发。 这些是我想改变的,任何有[名字的东西]: [姓名]通过docusign 提前谢谢你。
我有一个自定义按钮组件,如下所示。 当我点击按钮时,每件事都会例外,按钮文本也在变化。但是当我点击另一个按钮时,我想更改按钮的文本。为此,我调用按钮的onclick方法。但是,当我单击按钮时,即使调用了该方法,文本也不会更改。这是我的页面。