gpt4 book ai didi

java - 如何使用作为另一个类的函数的参数访问的对象的函数?

转载 作者:行者123 更新时间:2023-11-30 05:41:09 25 4
gpt4 key购买 nike

这就是我想要实现的目标:

public class cls1{
public cls1(){} //constructor for the sending class
String name = "foo"; //String I wish to access
public String sentName(){ //Method to access the string outside
return name;
}
}

public class cls2{ //Class where I wish to access the name
public String gotName(Object obj){ //Method where I wish to call the cls1 instance
String recvName;
if(obj.getClass()==cls1.class){
recvName = obj.sentName(); //THE PROBLEM
}
return recvName;
}
}

我确实知道 obj 在运行时之前不会具有 cls1 的方法和变量,因此不允许该行进行编译。有没有办法实现这个目标?

附注我还尝试在 cls2 中创建 cls1 的实例:

cls1 cls1Inst;
obj=cls1Inst;
cls1Inst.sentName();

但这给出了一个空指针异常,也许是因为我试图访问 cls1 的方法而不实际创建它的实例(我对空指针不太清楚,请原谅我的愚蠢)。

如有任何帮助,我们将不胜感激。

最佳答案

您无法在对象类对象上调用sentName()。您需要首先将其类型转换为 cls1 类。

public class cls2{                       //Class where I wish to access the name
public String gotName(Object obj){ //Method where I wish to call the cls1 instance
String recvName;
if(obj.getClass()==cls1.class){
cls1 cls1Obj = (cla1)obj;
recvName = cls1Obj.sentName(); //THE PROBLEM
}
return recvName;
}
}

关于java - 如何使用作为另一个类的函数的参数访问的对象的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55625142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com