Javaで@JsonAnyGetterおよび@JsonAnySetterアノテーションを呼び出すことができるのはいつですか?
public @interface JsonAnyGetter public @interface JsonAnyGetter
import java.io.*; import java.util.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.annotation.*; public class JsonAnyGetterAndJsonAnySetterTest { public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException { Employee emp1 = new Employee(); emp1.setFirstName("Adithya"); emp1.setLastName("Sai"); emp1.setEmpId(125); emp1.getAdditionalInformation().put("technology1", "Machine Learning"); emp1.getAdditionalInformation().put("technology2", "Robotics"); ObjectMapper mapper = new ObjectMapper(); String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp1); System.out.println(jsonStr); System.out.println("Deserializing JSON to Object:"); Employee emp2 = mapper.readValue(jsonStr, Employee.class); System.out.println("id : " + emp2.getEmpId()); System.out.println("firstName : " + emp2.getFirstName()); System.out.println("lastName : " + emp2.getLastName()); System.out.println("Additional information : " + emp2.getAdditionalInformation()); } } // Employee class @JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({"firstName", "lastName", "technologies", "empId" }) class Employee { @JsonProperty("EMPLOYEE_ID") private int empId; @JsonProperty("EMPLOYEE_FIRST_NAME") private String firstName; @JsonProperty("EMPLOYEE_LAST_NAME") private String lastName; private Map<String, String> additionalInformation = new HashMap<>(); public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @JsonAnyGetter public Map<String, String> getAdditionalInformation() { return additionalInformation; } public void setAdditionalInformation(Map<String, String> additionalInformation) { this.additionalInformation = additionalInformation; } @JsonAnySetter public void setAdditionalProperty(final String name, final String value) { this.additionalInformation.put(name, value); } }
{ "EMPLOYEE_FIRST_NAME" : "Adithya", "EMPLOYEE_LAST_NAME" : "Sai", "EMPLOYEE_ID" : 125, "technology1" : "Machine Learning", "technology2" : "Robotics" } Deserializing JSON to Object: id : 125 firstName : Adithya lastName : Sai Additional information : {technology1=Machine Learning, technology2=Robotics}
-
Javaでpack()メソッドを使用できるのはいつですか?
pack() メソッドはウィンドウで定義されています Javaのクラスであり、すべてのコンテンツが適切なサイズ以上になるようにフレームのサイズを設定します。 pack()の代替 メソッドは、 setSize()を呼び出して、フレームサイズを明示的に確立することです。 またはsetBounds() メソッド。通常、 pack()を使用します setSize()よりもメソッドを呼び出す方が望ましい パックはフレームレイアウトマネージャーにフレームサイズを任せ、レイアウトマネージャーはプラットフォームの依存関係やコンポーネントサイズに影響を与えるその他の要因にうまく適応できるためです。 構文 p
-
JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?
invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド 。 SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る 。 invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。 構文 public static void in