PHP has a var_dump() function which outputs the internal contents of an object, showing an object's type and content.
For example:
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);
will output:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
What is the equivalent in Java that will do the same?
解决方案
It is not quite as baked-in in Java, so you don't get this for free. It is done with convention rather than language constructs. In all data transfer classes (and maybe even in all classes you write...), you should implement a sensible toString method. So here you need to override toString() in your Person class and return the desired state.
There are utilities available that help with writing a good toString method, or most IDEs have an automatic toString() writing shortcut.
EDIT: links dead - now available here.