Java模拟PHP';s标准类
我需要一个类似于属性包的东西来将键值对放入其中。 我想创建这样的对象列表,在bean中初始化它们,然后使用该列表在JSF模板中呈现表。 我知道怎么做,但我想避免为这种情况创建一些特殊的类,比如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列表项必须是
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']>