为什么在Java中将“this”用作方法参数时会收到此错误消息?
我最近读到this
是一个局部变量,它包含当前对象的引用ID,可以在任何实例函数中使用。但是,当我显式地将this
声明为int参数时,我得到的编译时错误是:“接收方类型与封闭类类型不匹配”
class ThisDemo
{
void show(int this)
{
System.out.println(this);
}
}
class ThisDemo1
{
public static void main(String... s)
{
ThisDemo a=new ThisDemo();
int x=10;
a.show(x);
}
}
# 1 楼答案
不能使用
this
命名变量,因为它在Java中是保留关键字this
指的是您当前的对象(在您的例子中是类ThisDemo
的对象)。我想你想要达到以下目标:# 2 楼答案
您可能会被错误消息弄糊涂
根据其他答案,您不应该使用
this
作为参数(或将其声明为新变量),但错误消息说明了完全不同的情况事实上,您可以使用
this
作为参数,但只能在一个地方使用:作为a receiver parameter实际上,它看起来像
然后,您可以通过常规反射方式提取
@Special
注释# 3 楼答案
此是一个关键字,它引用方法或对象的当前实例。它用来指它所属的对象
因此,将人体视为一个类。因为对象的实例可能会被称为不同的东西,比如John或Kyle,当在您将使用的方法中引用泛型人员时。例如,要获取任何人的心跳,都需要这样的东西。getHeartbeat()
希望这能帮助你概念化这一点