Java 通用构造函数调用错误?

Java 通用构造函数调用错误?,java,vector,constructor,Java,Vector,Constructor,因此,在这段代码中,正如逗号所示,出现了两种令人困惑的情况。将泛型放在构造函数名称之前和之后会产生不同的结果 class moke<T> { T ob; moke(T ob){ this.ob=ob; } T ret(){ return ob; } } class ramirez{ public static void main(String args[]){ mo

因此,在这段代码中,正如逗号所示,出现了两种令人困惑的情况。将泛型放在构造函数名称之前和之后会产生不同的结果

class moke<T> {
    T ob;
     moke(T ob){
      this.ob=ob;
    }
    T ret(){
        return ob;
      }
    }
    class ramirez{
       public static void main(String args[]){
        moke<Integer> one= new moke<Integer>(9);// it's ok
        moke<String> two=new moke<Integer>("ASDASD"); //  error appears here which is ok
        moke<String> three= new <Integer>moke("knmkm"); //no error here WHY??
        moke<String> four=new <String>moke(9);  //No error hereWHY??


     }}
class烟雾{
T-ob;
莫克(T ob){
这个.ob=ob;
}
T ret(){
返回ob;
}
}
拉米雷斯类{
公共静态void main(字符串参数[]){
莫克一号=新莫克(9);//没关系
moke two=new moke(“ASDASD”);//此处出现错误,正常
莫克三号=新莫克(“knmkm”);//这里没有错误为什么??
莫克四号=新莫克(9);//这里没有错误为什么??
}}

那么
constructor()
constructor()

之间的区别是什么呢回答第一个问题:

// here {1,2,3} is an array initializer you may use to define the array
int[] arr = {1,2,3}; 

// this does not work, because this is an assignment expression and not a definition of the array
arr = {1,2,3}; 
为了更清楚地说明这一点,只需想象一下
arr
是一个数组,其大小(可能不同)是在运行时确定的。这项任务如何进行

关于第二个问题,我还没有答案。看起来很奇怪。但请为stackoverflow上的每个问题创建一个新帖子。

每个帖子可能有一个问题重复请(例如,出于关闭一个问题作为重复问题并回答第二个问题或甚至分别关闭这两个问题的原因)可能重复的