在Java中,是否可以将类或类对象分配给变量?
ThatClass obj= a; //a is any constant
而不是ThatClass obj=new ThatClass();
//调用构造函数,然后调用/打印该构造函数中的整数(或任何其他值)(见下文)。
ThatClass(){
final int constant=a;
System.out.println(constant);
}
我怀疑没有,但是再一次,Java继续让我感到惊讶。
答案 0 :(得分:1)
如果要分配对象的类是子类型,显然可以将类对象分配给另一个类。 例如,考虑一个类
class Bird
{
pulic Bird(String name)
{
System.out.println(name);
}
}
现在你创建一个像这样的子类鹦鹉
class Parrot extends Bird
{
public Parrot()
{
super("Parrot");
}
}
现在你创建了一个Parrot对象。
Parrot p=new Parrot();
您可以将此分配给Bird
Bird b=p;
即使您创建像Bird这样的对象
Bird b1=new Bird("A Bird");
您可以将此分配给另一个Bird变量,如下所示
Bird b2=b1;
如果您想要访问该类的某些字段而不创建该类的对象,则必须将这些字段转换为static
。
class MyClass
{
final static int constant=a;
public static void show()
{
System.out.println(constant);
}
}
您可以像以下
一样调用show()
方法
MyClass.show();
答案 1 :(得分:0)
是。
Class classType = String.class;
System.out.println(classType)
应该工作。
答案 2 :(得分:0)
不,你无法做到这一点。基本上,你要求拳击转换,java只支持以下拳击转换。
从类型布尔值到类型布尔
从类型字节到类型字节
从短类型到短类型
从char类型到Character
从int类型到Integer类型
从long类型到Long
从float类型到Float类型
从double类型到Double
从null类型到null类型
*字符串是一种特殊情况。
来源:http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.7