PHP에는 var_dump () 함수가있어 객체의 내부 내용을 출력하여 객체의 유형과 내용을 보여줍니다.
예를 들면 다음과 같습니다.
class Person {
private $firstName;
private $lastName;
public function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
$person = new Person('Jon', 'Smith');
var_dump($person);
출력합니다 :
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
Java에서 동일한 작업을 수행하는 동등한 기능은 무엇입니까?
답변
Java에서는 그다지 중요하지 않으므로 무료로 얻을 수는 없습니다. 언어 구성이 아닌 관습으로 수행됩니다. 모든 데이터 전송 클래스에서 (그리고 아마도 모든 클래스에서 작성하는 경우에도 … ) 합리적인 toString
방법을 구현해야합니다 . 따라서 여기 toString()
에서Person
클래스 하고 원하는 상태를 반환해야합니다.
좋은 toString 메소드 작성에 도움 이되는 유틸리티 가 있거나 대부분의 IDE에 자동 toString()
작성 단축키가 있습니다.
답변
필자의 경험에 따르면 var_dump는 일반적으로 step-though 디버거 대신 PHP를 디버깅하는 데 사용됩니다. Java에서는 물론 IDE의 디버거를 사용하여 객체 내용의 시각적 표현을 볼 수 있습니다.
답변
대안은 toString()
객체 의 메서드 를 재정 의하여 원하는 방식으로 내용을 출력하거나 리플렉션을 사용하여 객체를 검사하는 것입니다 (디버거와 비슷한 방식).
리플렉션을 사용하면 개별 객체를 “분석 가능”하도록 수정할 필요가 없지만 복잡성이 추가되고 중첩 된 객체 지원이 필요한 경우이를 작성해야합니다.
이 코드는 Object
“o”에 대한 필드와 값을 나열합니다.
Field[] fields = o.getClass().getDeclaredFields();
for (int i=0; i<fields.length; i++)
{
System.out.println(fields[i].getName() + " - " + fields[i].get(o));
}
답변
가장 좋은 방법은 google-gson (JSON을 Java 객체로 변환하거나 그 반대로 변환하는 Java 라이브러리)을 사용하는 것입니다.
다운로드 하여 “jar”파일을 프로젝트에 추가하십시오.
HashMap<String, String> map = new HashMap<String, String>();
map.put("key_1", "Baku");
map.put("key_2", "Azerbaijan");
map.put("key_3", "Ali Mamedov");
Gson gson = new Gson();
System.out.println(gson.toJson(map));
산출:
{"key_3":"Ali Mamedov","key_2":"Azerbaijan","key_1":"Baku"}
모든 객체 (배열, 목록 등)를 JSON으로 변환 할 수 있습니다. PHP의 var_dump () 의 최고의 아날로그라고 생각합니다.
답변
Apache Commons lang 패키지는 리플렉션을 사용하여 필드의 값을 가져 오는 기본 toString () 메소드를 빌드하는 데 사용할 수있는 클래스를 제공합니다. 그냥 봐이것 .
답변
나는 합리적인 결과로 Jestr 을 사용 합니다.
답변
나는 이미 내가 작업중 인 프로젝트 유형에 의존하기 때문에 GSON을 사용하고 싶다.
public static String getDump(Object o) {
return new GsonBuilder().setPrettyPrinting().create().toJson(o);
}
또는 사용하는 다른 JSON 라이브러리 대신 GSON을 사용하십시오.