Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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
我可以使用什么数据类型来代替';var';在Java8中?_Java_Java 8_Var - Fatal编程技术网

我可以使用什么数据类型来代替';var';在Java8中?

我可以使用什么数据类型来代替';var';在Java8中?,java,java-8,var,Java,Java 8,Var,我试着这么做,但Eclipse说 无法将var解析为类型 我可以在Java 8中使用什么类型?以下两种方法都可以: Something x=新事物() objectx=新事物() 除了Something和Object之外,您应该能够使用Something扩展的任何类,或者Something实现的任何接口(直接或间接) 开始阅读Java类型系统的工作原理可能是一个好主意。以下两项都应该起作用: Something x=新事物() objectx=新事物() 除了Something和Obj

我试着这么做,但Eclipse说

无法将var解析为类型


我可以在Java 8中使用什么类型?

以下两种方法都可以:

  • Something x=新事物()
  • objectx=新事物()
除了
Something
Object
之外,您应该能够使用
Something
扩展的任何类,或者
Something
实现的任何接口(直接或间接)



开始阅读Java类型系统的工作原理可能是一个好主意。

以下两项都应该起作用:

  • Something x=新事物()
  • objectx=新事物()
除了
Something
Object
之外,您应该能够使用
Something
扩展的任何类,或者
Something
实现的任何接口(直接或间接)



开始阅读Java类型系统的工作原理可能是个好主意。

Java 10中添加了
var
关键字,并告诉编译器从
=
赋值运算符右侧的值推断类型

这意味着以下各项是等效的,即编译器将生成完全相同的字节码:

var x = new something();


仅供参考:
something
是一种类型(类、接口、枚举),Java命名约定是以大写字母开头的类型名称,因此它应该命名为
something

Java 10中添加了
var
关键字,并告诉编译器从
=
赋值运算符右侧的值推断类型

var x = new something();

something x = new something();
这意味着以下各项是等效的,即编译器将生成完全相同的字节码:

var x = new something();

仅供参考:
something
是一种类型(类、接口、枚举),Java命名约定是以大写字母开头的类型名称,因此应将其命名为
something

var x = new something();

something x = new something();
var用于减少上面一行中的锅炉代码,我使用了字符串RHS(右侧)两次,而在下面一行中我没有使用,因为编译器根据LHS(左侧)的赋值进行推断

var用于减少上面一行中的锅炉代码,我使用了字符串RHS(右侧)两次,而在下面一行中我没有使用,因为编译器根据LHS(左侧)的赋值进行推断


Java10具有var类型。如果您需要java 8中的var,请尝试Lombok项目,Lombok在java 8中启用了该功能。非常方便的小图书馆没有一个答案足够好,可以接受吗?Java 10有var类型。如果您需要java 8中的var,请尝试Lombok项目,Lombok在java 8中启用了该功能。非常方便的小图书馆没有一个答案可以接受?很可能是
Object x=new Something()
将不起作用,因为需要使用该值的以下代码无法访问由类型
Something
@Andreas添加的任何方法,但我在问题中没有看到任何以下代码,并且我没有关于实际使用类型的信息。据我所知,将变量声明为某种我不知道的接口类型会更简洁。我能给OP的最好建议是:仔细阅读Java类型系统,并从中学习。“我没有关于正在使用的实际类型的信息”当然,代码使用的是
Something
类型“我在问题中看不到任何以下代码”True,但分配给变量的唯一原因是以后的代码使用该值。你在问题中看到的只是一个片段,但我们至少可以推断一点上下文“cleaner将变量声明为某个接口类型”同意,但
对象
不是我并不反对你的其余答案,但极有可能
Object
无法替代
var
将不起作用,因为需要使用该值的以下代码无法访问由类型
Something
@Andreas添加的任何方法,但我在问题中没有看到任何以下代码,并且我没有关于实际使用类型的信息。据我所知,将变量声明为某种我不知道的接口类型会更简洁。我能给OP的最好建议是:仔细阅读Java类型系统,并从中学习。“我没有关于正在使用的实际类型的信息”当然,代码使用的是
Something
类型“我在问题中看不到任何以下代码”True,但分配给变量的唯一原因是以后的代码使用该值。你在问题中看到的只是一个片段,但我们至少可以推断一点上下文“cleaner将变量声明为某个接口类型”同意,但
对象
不是我并不反对你其余的回答,但
Object
很可能无法替代
var