Die Definition eines type cast in Java
Möchte ich definieren eine Typ-Umwandlung von einem beliebigen Typ in einen primitiven Datentyp in Java. Ist es möglich zu definieren, eine Umwandlung von einem beliebigen Typ in einen anderen beliebigen Typ?
public class Foo{
//methods, constructor etc for this class
...
//make it possible to cast an object of type Foo to an integer
}
//example of how an object of type foo would be cast to an integer
public class Bar(){
public static void main(String[] args){
Foo foo1 = new Foo();
int int1 = (int)foo1;
System.out.println(int1+"");
}
}
- Ziemlich sicher, dass dies nicht möglich ist, aber vielleicht kann jemand korrigieren Sie mich, auf diese.
- Kippe es eine Struktur, die wie gegossen, so lange, wie die Klassen haben die gleichen Variablen?
- Nein, Java wirft eine
ClassCastException
- Eigentlich, was wollen Sie erreichen mit diesem casting.....Sie werfen wollte eine Referenz von einer Klasse mit eigenen Methoden und feilds auf eine
int
..Warum???
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht wirken, aber Sie können eine Konvertierung Funktion:
Bar wird dann:
Ist es nicht möglich, die Konvertierung von einer Klasse geben (zB. Foo) in einen primitiven Typ direkt. Stattdessen sollten Sie Methoden definieren (zB.
int asInteger()
), die den Rückgabewert von Foo-Objekts als ganze Zahl.Nein, es ist nicht. Es würde nicht wirklich Sinn machen: wie könnte eine
Foo
zu einemint
?Eher eine Reihenfolge festlegen, geeignete Methoden, wie zum Beispiel:
Typecasting zwischen primitiven Typen und Java-Typen, wie zum Beispiel zwischen
int
undInteger
war nicht auch ursprünglich ein Teil von Java.Foo-Klasse erweitern müssen Anzahl. Warum würden Sie wollen, zu tun, obwohl? warum nicht einfach den Zugriff auf eine int-variable innerhalb von foo.