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