我需要像属性包这样的东西来放入键值对。
我想创建此类对象的列表,在 bean 中初始化它们,然后使用该列表在 JSF 模板中呈现表格。
我知道该怎么做,但我想避免为这种情况创建一些特殊的类,比如 OrderLineItem
并使用 List<OrderLineItem>
.
我不想定义新类。
在 PHP 中我可以使用 StdClass。
StdClass 是 PHP 中一个文档稀少的类,它没有预定义的成员。
$object = new StdClass;
$object->foo = 'bar';
但是,据我所知,Primefaces <p:dataTable>
列表项必须是具有 getter 的对象。
如果我想引用 <h:outputText value="#{item.title}" />
,我的列表对象应该有 getTitle()
方法。
在我的案例中是否有任何解决方法,或者我真的需要定义特殊类以使生活更轻松?
谢谢。
最佳答案
如果你想要一个简单的键/值表,那么 HashMap可能正是您正在寻找的。p>
Map<String, String> myMap = new HashMap<>();
myMap.put("foo", "bar");
System.out.println(myMap.get("foo")); // outputs "bar"
此示例将字符串匹配到字符串,但您可以使用 HashMap 将任何类型映射到任何其他类型。您甚至可以创建 Map<Object, Object>
创建一个弱类型的 map ,将任何东西映射到任何东西。但对于大多数用例,您宁愿使用更专业的形式。
关于PHP 的 StdClass 的 Java 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582674/