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에서 동일한 기능을 수행하는 동등한 기능은 무엇입니까?
질문에 대한 답변
자바에서는 그다지 베이크인이 되지 않기 때문에 무료로 받을 수 있는 것은 아닙니다.그것은 언어 구성보다는 관례로 행해진다.모든 데이터 전송 클래스(아마도 사용자가 쓰는 모든 클래스…)에서 합리적인 방법을 구현해야 합니다.그러니까 여기서 오버라이드 해야 합니다.toString()
당신의 안에서Person
원하는 상태를 반환합니다.
적절한 toString 메서드를 쓰는 데 도움이 되는 유틸리티가 있습니다.또는 대부분의 IDE에는 자동 기능이 있습니다.toString()
쓰기 단축키
제 경험상, var_dump는 보통 스텝 스킴 디버거 대신 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() 메서드를 구축하는 데 사용할 수 있는 클래스를 제공합니다.이것 좀 보세요.