Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java genric类不工作去润滑_Java_Generics_Integer - Fatal编程技术网

java genric类不工作去润滑

java genric类不工作去润滑,java,generics,integer,Java,Generics,Integer,我无法使用Integer生成泛型类。它可以处理字符串,但当涉及整数时,它会说Java已经否决了被重写的API。 我可以为泛型整数类型做什么 这不是泛型本身的问题 弃用警告实际上是关于这一行的: s2.SetData(new Integer(5)) Integerint构造函数一直以来都是个坏主意,现在正式反对使用Java9以后的构造函数。报告说: 不赞成。使用此构造函数很少是合适的。静态出厂值OFIT通常是更好的选择,因为它可能产生显著更好的空间和时间性能 你应该把上面的内容写成

我无法使用Integer生成泛型类。它可以处理字符串,但当涉及整数时,它会说Java已经否决了被重写的API。 我可以为泛型整数类型做什么


这不是泛型本身的问题

弃用警告实际上是关于这一行的:

    s2.SetData(new Integer(5))
Integerint构造函数一直以来都是个坏主意,现在正式反对使用Java9以后的构造函数。报告说:

不赞成。使用此构造函数很少是合适的。静态出厂值OFIT通常是更好的选择,因为它可能产生显著更好的空间和时间性能

你应该把上面的内容写成

    s2.SetData(Integer.valueOf(5))
或者更好:

    s2.SetData(5)
并依靠自动装箱

新整数5的问题是:

语义有点不同;e、 g

  new Integer(5) != new Integer(5)
  Integer.valueOf(5) == Integer.valueOf(5)
它可能会不必要地创建整数对象

在将来的某个时刻,当值类型完全实现时,在某些用例中,不推荐使用的表单可能会出现完全错误

作为记录,如果您遵循原始警告中的建议,您将得到以下信息:

$ javac Genric.java 
Genric.java:24: error: cannot find symbol
           s2.getdata();    
             ^
  symbol:   method getdata()
  location: variable s2 of type Student<Integer>
Note: Genric.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error

$ javac -Xlint:deprecation Genric.java 
Genric.java:23: warning: [deprecation] Integer(int) in Integer has been deprecated
           s2.SetData(new Integer(5));
                      ^
Genric.java:24: error: cannot find symbol
           s2.getdata();    
             ^
  symbol:   method getdata()
  location: variable s2 of type Student<Integer>
1 error
1 warning
$ 
泛型参数名称通常是一个大写字母

  class Student<T>     // correct
  class Student<Type>  // incorrect
这简直太难看了。每个二进制运算符前后都应该有一个空格

1-我注意到有人已经帮助修复了很多样式错误。我指的是你最初发布的代码样式;i、 你想让我们读的东西


2-必须针对名称拼写错误的API编写代码,这真是让人恼火。大多数人会原谅你,如果你写的是颜色对颜色,以及其他情况下有替代拼写。但如果您不确定,请查字典。

您能从控制台打印出准确的错误吗。问题很不清楚。@martijnp我实际上只是将所有内容缩进4个空格,以便将其格式化为代码。@Sweeper我指的是第一行,根据您在学生类定义后面添加的更改,在该标识被解释为html标记而未显示之前。在格式化之后,它变得可见。@martijnp如果您查看并列标记,它显示在编辑之前存在。问题是,因为它没有被格式化为代码,所以它没有被呈现,因为HTML。
  getData // correct
  GetData // incorrect
  getdata // incorrect
  class Student<T>     // correct
  class Student<Type>  // incorrect
    s= "what the heck";