首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数变量作为参数

参数变量作为参数
EN

Stack Overflow用户
提问于 2013-09-02 11:07:33
回答 3查看 81关注 0票数 0

我有一个对象人类:

代码语言:javascript
复制
public class Human {
String name;

public Human(String name){
    this.name = name;
}

}

在我的主要课堂上,我有一个人类“约翰”的例子。

使用一个名为getVarOfObject()的函数,我想获得John的名称:

代码语言:javascript
复制
public class Example {

public static Object getVarOfObject(Object obj, Object var){

    return obj.var;

}

public static void main(String[] args) {

    Human john = new Human("John");

    String johnsName = getVarOfObject(john, name);

}

}

我知道您可以输入john.name,但是在我的例子中,我需要一个函数来完成这个任务。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-02 11:16:13

您可以使用以下代码

代码语言:javascript
复制
        Field field = <Your object>.getClass().getDeclaredField(fieldName);
        field.setAccessible(true);
        return (String) field.get(object);
票数 2
EN

Stack Overflow用户

发布于 2013-09-02 11:09:21

你不能这样做,除非仔细考虑。

请注意,此魔法可能导致错误、微妙问题、异常、性能损失、窒息、溺水、死亡、瘫痪或火灾。

对象obj是对象,字符串field是字段的名称。

代码语言:javascript
复制
Class clazz=Human.getClass(); //or for class-independence use `obj.getClass()`.
Field fd=clazz.getField(name);
fd.get(obj);
票数 2
EN

Stack Overflow用户

发布于 2013-09-02 11:13:20

为什么不使用访问器方法(getter和setter)?

Human

代码语言:javascript
复制
public String getName() {
    return name;
}

在你的主要方法中:

代码语言:javascript
复制
Human john = new Human("John");
String johnsName = john.getName();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18571775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档