Ist es möglich, ein Objekt mit einer Zeichenfolge, toString() -Methode und der Klasse selbst zu erstellen.Konstruieren eines Objekts aus einer Zeichenfolge
Zum Beispiel haben wir Klasse Buch.
class Book
{
// ...
String getTitle()
{
return title;
}
String getPubYear()
{
return pubYear;
}
void setTitle(String _title)
{
title = _title;
}
void setPubYear(String _pubYear)
{
pubYear = _pubYear;
}
public String toString(){
return title+" "+pubYear;
}
}
Wenn wir den String haben:
"ExampleTitle 2017"
Wie können wir eine Instanz der Klasse Buch zu erstellen, mit denen hat Attribut:
title=ExampleTitle
pubyear=2017
Wir folgendes tun:
Book book = new Book();
String exampleString = "ExampleTitle 2017";
String[] parts = exampleString.split();
book.setTitle(parts[0]);
book.setPubYear(parts[1]);
Aber das ist lon g gewunden. Gibt es einen automatischen Weg dies zu tun?
Warum denken Sie, es ist langatmig? Ich weiß nicht, wie Sie eine "automatische" Lösung erwarten würden, um zu verstehen, welcher Teil Ihres Strings dem entspricht, was – tddmonkey
ToString() nicht als etwas parseable dienen soll und das Objekt neu erstellen kann. Wenn Sie das wollen, dann verwenden Sie einen XML- oder JSON-Marshaller/Unmarshaller. Nicht toString(). –
Fügen Sie einen neuen Konstruktor hinzu: 'public Book (String title, String year) {...}'. Ich bin mir nicht sicher, ob "String" für "Jahr" geeignet ist. – pzaenger