java中如何用字符串取属性

一个类A
A a= new A(); 类中默认有属性b,那么我直接a.b就可以取出属性b的值了,但是现在属性名是一个传过来的字符串,也就是a."b",这样肯定不行,那我该怎么取呢...不知道java中有这样的方法没有

import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTest {
public static void main(String[] args) throws Exception {
User user = new User();
Field field = user.getClass().getField("name");
System.out.println(field.get(user));
Method method = user.getClass().getMethod("getPassword");
System.out.println(method.invoke(user));
}
}
class User {
public String name = "admin";
public String getPassword() {
return "123456";
}
}

可以利用JAVA“反射”,看看我上面的例子吧。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-17
import
javax.swing.*;
public
class
example4_3
{
public
static
void
main(string[]
args)
{
byte
d[]="我们正在教室上课".getbytes();
string
s=new
string(d,8,4);
joptionpane.showmessagedialog(null,"第8个字符位置开始的两个汉字:"+s);
}
}
第2个回答  2013-04-04
你可以把 “b” 放到一个数组里 然后在访问追问

怎么用?具体一点呢?放到数组就能直接点出属性了么?

追答

b的属性 不就是字符串吗 操作的话 不就是取出b的值吗 我不知道 你具体要操作啥 不好回答啊

追问

....你理解错了,属性是什么类型不重要,现在是属性b这个名字我得到的是一个字符串"b",我想通过这个字符串取出a中的b属性,也就是之前a.b就可以,现在怎么通过属性名字也取出这个属性的值来,a."b"这样肯定不可以的。

追答

还是没明白啥意思 给你个网址 你瞧瞧 能不能给你点启发吧:http://blog.163.com/jdsoft_wenchangwen/blog/static/13988710420113611537965/

相似回答