I want to define a type cast from an arbitrary type to a primitive data type in Java. Is it possible to define a cast from one arbitrary type to another arbitrary type?
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+"");
}
}
You can't cast it, but you can provide a conversion function:
public class Foo{
//methods, constructor etc for this class
...
public int toInt(){
//convert to an int.
}
}
Bar then becomes:
public class Bar(){
public static void main(String[] args){
Foo foo1 = new Foo();
int int1 = foo1.toInt();
System.out.println(int1+"");
}
}
It is not possible to convert from a class type (eg. Foo) to a primitive type directly. Instead you should define methods (eg. int asInteger()
) that return the value of a Foo object as an integer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With