Java语法在变量之前重复类名

时间:2015-12-18 22:14:53

标签: java

这个问题实际上是我提出的关于Java的两个问题之一,我不太了解这种语法,无法理解/问什么/问,但这是我在编码中看到的:

HibernateUtil hibUtil = new HibernateUtil(ORDB_CFG, AS400_CFG);

我知道HibernateUtil所在的位置。

我不明白的是,为什么在表达式中的var hibUtil之前也指定了它? 如果我做或不做,有什么不同?

2 个答案:

答案 0 :(得分:7)

这是一个变量声明和初始化。

在java中,您需要声明变量的类型。

HibernateUtil hibUtil = new HibernateUtil(ORDB_CFG, AS400_CFG);

第一个HibernateUtil声明变量/对象的类型。

在您的情况下,它是一个名为HibernateUtil的类hibUtil的变量。 在=创建新对象并将其分配给先前声明的变量之后。

根据您的类结构,您还可以将接口或超类声明为变量,并为其分配子类的对象。

答案 1 :(得分:3)

作为您可能看不到重复语法的示例,假设我们有HibernateUtil的子类MyHibernateUtil和YourHibernateUtil。然后你可能会看到一个HibernateUtil数组,其中包含每个子类中的一个:

HibernateUtil[] h = { new MyHybernateUtil(...), new YourHibernateUtil(...)};