我想在Java中定义从任意类型到基本数据类型的类型转换。是否可以定义从一个任意类型到另一个任意类型的转换?
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+"");
}
}
答案 0 :(得分:9)
你无法施放,但你可以提供转换功能:
public class Foo{
//methods, constructor etc for this class
...
public int toInt(){
//convert to an int.
}
}
Bar然后变成:
public class Bar(){
public static void main(String[] args){
Foo foo1 = new Foo();
int int1 = foo1.toInt();
System.out.println(int1+"");
}
}
答案 1 :(得分:3)
不可能直接从类类型(例如Foo)转换为基本类型。相反,您应该定义将Foo对象的值作为整数返回的方法(例如int asInteger()
)。
答案 2 :(得分:3)
不,不是。它真的没有意义:Foo
怎么能成为int
?
而是定义一系列适当的方法,例如:
public int toInt() { return 42; }
原始类型和Java类型之间的类型转换(例如int
和Integer
之间)甚至不是Java的一部分。
答案 3 :(得分:1)
类Foo必须扩展Number。你为什么要这样做呢?为什么不只是在foo中访问一个int变量。