Java模拟PHP';s标准类

Java模拟PHP';s标准类,java,php,jsf,jakarta-ee,Java,Php,Jsf,Jakarta Ee,我需要一个类似于属性包的东西来将键值对放入其中。 我想创建这样的对象列表,在bean中初始化它们,然后使用该列表在JSF模板中呈现表。 我知道怎么做,但我想避免为这种情况创建一些特殊的类,比如OrderLineItem和使用List。 我不想定义新类 在PHP中,我可以使用StdClass。 StdClass是PHP中文档稀少的类,没有预定义的成员 $object = new StdClass; $object->foo = 'bar'; 但是,据我所知,Primefaces列表项必须是

我需要一个类似于属性包的东西来将键值对放入其中。 我想创建这样的对象列表,在bean中初始化它们,然后使用该列表在JSF模板中呈现表。 我知道怎么做,但我想避免为这种情况创建一些特殊的类,比如
OrderLineItem
和使用
List
。 我不想定义新类

在PHP中,我可以使用StdClass。
StdClass是PHP中文档稀少的类,没有预定义的成员

$object = new StdClass;
$object->foo = 'bar';
但是,据我所知,Primefaces
列表项必须是带有getter的对象。 如果我想引用
,我的列表对象应该有
getTitle()
方法

在我的情况下,是否有任何旁白,或者我真的需要定义特殊的类以使生活更轻松?

谢谢。

当您想要一个简单的键/值表时,可能就是您想要的

Map<String, String> myMap = new HashMap<>();

myMap.put("foo", "bar");

System.out.println(myMap.get("foo")); // outputs "bar"
Map myMap=newhashmap();
myMap.put(“foo”、“bar”);
System.out.println(myMap.get(“foo”);//输出“bar”

本例将字符串与字符串进行匹配,但您可以使用HashMaps将任何类型映射到任何其他类型。您甚至可以创建一个
映射
来创建一个弱类型映射,它将任何东西映射到任何东西。但是对于大多数用例,您更愿意使用更专门的表单。

当您想要一个简单的键/值表时,可能就是您想要的

Map<String, String> myMap = new HashMap<>();

myMap.put("foo", "bar");

System.out.println(myMap.get("foo")); // outputs "bar"
Map myMap=newhashmap();
myMap.put(“foo”、“bar”);
System.out.println(myMap.get(“foo”);//输出“bar”

本例将字符串与字符串进行匹配,但您可以使用HashMaps将任何类型映射到任何其他类型。您甚至可以创建一个
映射
来创建一个弱类型映射,它将任何东西映射到任何东西。但是对于大多数用例,您更愿意使用更专业的形式。

我不知道我是否理解您。但我想你指的是SelectItem或JsfMap。

我不知道我是否理解你的意思。但我想你指的是SelectItem或JsfMap。

你需要的是一个
映射

您可以非常轻松地在其中存储键值对:

Map<KeyClass, ValueClass> myMap = new HashMap<KeyClass, ValueClass>();

您需要的是一张
地图

您可以非常轻松地在其中存储键值对:

Map<KeyClass, ValueClass> myMap = new HashMap<KeyClass, ValueClass>();

我建议使用匿名类:

return new HashMap<String, String>() {
  {
    this.put("key", "value");
  }
};
返回新的HashMap(){
{
本.put(“键”、“值”);
}
};

我建议使用匿名类:

return new HashMap<String, String>() {
  {
    this.put("key", "value");
  }
};
返回新的HashMap(){
{
本.put(“键”、“值”);
}
};

定义一个新类有什么不对?@BartFriederichs它只会使用一次..这似乎不是一个合理的理由。课程就是为你想做的事情而设的。为什么要打破OO范式?此外,您现在使用的类也只使用了一次。如果您添加功能需求以获得一个合理的答案,那会更好。我不认为使用
Map
可以满足您的需求,也许它就可以解决这个问题。如果您了解PHP的StdClass的功能,那么功能需求是明确的。有没有人想出一个好的解决方案?定义一个新类有什么错?@BartFriederichs它只会被使用一次..这似乎不是一个合理的理由。课程就是为你想做的事情而设的。为什么要打破OO范式?此外,您现在使用的类也只使用了一次。如果您添加功能需求以获得一个合理的答案,那会更好。我不认为使用
Map
可以满足您的需求,也许它就可以解决这个问题。如果您了解PHP的StdClass的功能,那么功能需求是明确的。有人想出了一个好的解决方案吗?Will
{item.foo}
在JSF模板输出中
bar
?@BogdanBurim它将是
{yourmagedbean.yourMap['key']}
{item.foo}
在JSF模板输出中
bar
?@BogdanBurim它将是
{yourmagedbean yourmagedbean.yourMap['key']>