我想从字符串设置的值中设置java中的键 抱歉,我无法解释这一点,所以我在PHP和这里写了这个 就是一个例子。
class Test() {
public setField($key, $value) {
$this->{$key} = $value;
}
}
$class = new Test()
$class->setField("hello", "hello world");
echo $class->hello;
答案 0 :(得分:2)
地图界面提供了所请求的行为:
import java.util.HashMap;
public class StackOverflow {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("hello", "hello world");
System.out.println(map.get("hello"));
}
}
但是您通常希望使用变量作为键,然后您需要一种方法来设置和检索每个变量。
public class Test {
private String hello;
public void setHello(String hello) {
this.hello = hello;
}
public String getHello() {
return hello;
}
}
public class StackOverflow {
public static void main(String[] args) {
Test test = new Test();
test.setHello("Hello world");
System.out.println(test.getHello());
}
}
或者你可以将变量公开:
public class Test {
public String hello;
}
public class StackOverflow {
public static void main(String[] args) {
Test test = new Test();
test.hello = "Hello world";
System.out.println(test.hello);
}
}
答案 1 :(得分:1)
Java没有PHP之类的内置动态变量。实现相同功能的最简单方法是使用Map
public class Test {
private Map<String, String> map = new HashMap<String, String>();
public void setField(String key, String value) {
map.put(key, value);
}
public String getField(String key) {
return map.get(key);
}
}
和
Test test = new Test();
test.setField("hello", "hello world");
System.out.println(test.getField("hello"));
答案 2 :(得分:0)
您必须在Java中手动执行此操作。有点像:
class Test(){
private HashMap<Object, Object> inner_objects;
public void setField(Object key, Object value) {
this.inner_objects.put(key, value);
}
public Object getField(Object key){
return this.inner_objects.get(key);
}
}
当然,这个例子可以通过多种方式进行改进,但它只是为了给你一般的想法。
但由于没有运算符重载,因此您无法将->
视为getField
,因此您需要每次都调用getField(key)
。