PHP 的 StdClass 的 Java 模拟

标签 java php jsf jakarta-ee

我需要像属性包这样的东西来放入键值对。 我想创建此类对象的列表,在 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可能正是您正在寻找的。

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/

相关文章:

java - 当版本为 0 时,Flyway 迁移不起作用

java - powermock 的依赖收敛错误

php - in_array 在处理字符串时不能正常工作

jsf - 从 ApplicationScoped bean 访问 RequestContext 是否需要同步?

在 Tomcat 7 上首次测试时从 Servlet 空白调用的 JSF 页面

java - 读取 JSF WebContent 文件夹中的文本文件

java - 我的数学有问题吗?非常简单的Java

php - MySQL 可以选择行坐标距离目标坐标 < x 英里的位置吗? (mysql邻近搜索)

php - 在php中将json字符串转换为整数

java - 以随机顺序对arraylist进行排序