首页 > 解决方案 > Java:使用干净的代码删除对象中不需要的字符

问题描述

我有一个从表单中检索到的对象。它可以包含一些不需要的字符,例如“/n”。我想删除它们。我已经找到了一种方法,但我很确定可以以一种更清洁、更短的方式来完成它?

List<Client> clients1 = pc.getClients();
List<Client> clients2 =new ArrayList<Client>();

if (clients1 != null) {
    for (Client tc : clients1) {    
        tc.setClientId(tc.getClientId().replaceAll("\\p{C}", ""));
        tc.setClientName(tc.getClientName().replaceAll("\\p{C}", ""));
        tc.setCallFirstName(tc.getClientFirstName().replaceAll("\\{C}",""));
        clients2.add(tc);
    }
}

pc.setClients(client2)

有什么建议么?对我来说,这个问题的重点是学习如何编写更好的代码。

标签: javaobject

解决方案


“干净的代码”答案将围绕“告诉,不要问”原则。

在您的情况下:您首先从 Client 对象获取(询问!)某些属性,以对其进行更改,以重新设置属性。

为什么不直接去告诉客户之类的tc.normalizeFields()?!

含义:不要让另一个类清理 Client 类的字段,而是将所有代码放入Client 类本身!并且有一种方法可以在内部工作所有需要“清理”的字段。这样在添加或删除字段时,不需要更改其他类。每次添加/删除/更改字段时,都需要更新您显示的代码。

当您的 Client 类更多是 bean/data 时(仅携带数据,没有任何特定行为,也就是它自己的方法),那么您应该考虑使用一个单独的ClientNormalizerService类来为您封装这项工作。


推荐阅读